インデックス・サイズと範囲クエリー速度のチューニング
上級ユーザーは、インデックス・サイズをチューニングするために、特殊なトークン・フィールド・タイプの精度ステップを変更できます。
DataStax Enterpriseでは、範囲クエリー速度の向上と引き換えに、Solrインデックス・サイズが大きくなります。また、Solrインデックス・サイズの増大と引き換えに、範囲クエリー速度が低下します。この兼ね合いは、特定のユース・ケースとコアごとのケースに適合させることができます。そのためには、DataStax Enterpriseが使用する2つの特殊なトークン・フィールド・タイプの精度ステップをセットアップします。
このチューニングを実行するときは、細心の注意を払ってください。この高度なチューニング機能の使用が推奨される状況は、ほとんどありません。ほとんどの場合、デフォルト値の使用がベストです。このチューニングを実行するには、DataStax Enterpriseの内部フィールド・タイプの一方または両方の精度ステップを変更します。
- token_long
クエリー・ルーティング中のトークン・フィールドのフィルタリングに使用します。
- ttl_long
有効期限を迎えるドキュメントの検索に使用します。
精度ステップを変更するには:
fieldType
定義で、token_long
とttl_long
のクラス属性をsolr.TrieLongField
に設定します。precisionStep
属性をデフォルトの「8」から別の値に設定します。この値を選ぶときには、それが及ぼす影響をよく理解してからにしてください。通常は、精度ステップが小さくなればなるほど、インデックス・サイズが大きくなり、範囲クエリー速度が向上します。反対に、精度ステップが大きくなればなるほど、インデックス・サイズは縮小し、範囲クエリー速度が低下する可能性があります。schema.xmlの以下のスニペットは、必要とされる両方のフィールド・タイプ構成の一例です。
<?xml version="1.0" encoding="UTF-8" ?> <schema name="test" version="1.0"> <types> . . . <fieldType name="token_long" class="solr.TrieLongField" precisionStep="16" /> <fieldType name="ttl_long" class="solr.TrieLongField" precisionStep="16" /> . . . </types> <fields> . . . </schema>
ユーザーが以下のいずれかの過ちを犯すと、DataStax Enterpriseは、これらのフィールド・タイプ定義の一方または両方を無視し、デフォルトの精度ステップを使用します。
- フィールド・タイプの定義に
token_long
またはttl_long
以外の名前を使用する。 - クラスをsolr.TrieLongField以外のものにする。
- 精度ステップ値が数でない。DataStax Enterpriseが警告のログを記録する。
token_long
タイプまたはttl_long
タイプを<fields>タグのフィールドとして使用する必要はありません。