インデックス・サイズと範囲クエリー速度の調整

上級ユーザーは、特殊なトークン・フィールド型の精度ステップを変更してインデックス・サイズを調整できます。

DataStax Enterpriseでは、範囲クエリー速度と検索インデックス・サイズはトレードオフの関係にあり、範囲クエリー速度を速めると検索インデックス・サイズが大きくなります。この兼ね合いは、特定のユース・ケースでコアごとに調整できます。そのためには、DataStax Enterpriseで使用される2つの特殊なトークン・フィールド型の精度ステップを設定します。

この調整を行う際は細心の注意を払ってください。この高度なチューニング機能の使用が推奨される状況は、ほとんどありません。ほとんどの場合、デフォルト値の使用が適しています。この調整を実行するには、DataStax Enterpriseの内部フィールド・タイプの一方または両方の精度ステップを変更します。
  • token_long

    クエリー・ルーティング中のトークン・フィールドのフィルタリングに使用します。

  • ttl_long

    有効期限を迎えるドキュメントの検索に使用します。

精度ステップを変更するには:

  1. fieldType定義で、token_longttl_longのクラス属性をsolr.TrieLongFieldに設定します。
  2. 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が警告のログを記録する。
特殊フィールドをセットアップするのは、fieldTypeの定義だけです。token_long型またはttl_long型を<fields>タグのフィールドとして使用する必要はありません。