インデックス・サイズと範囲クエリー速度のチューニング

上級ユーザーは、インデックス・サイズをチューニングするために、特殊なトークン・フィールド・タイプの精度ステップを変更できます。

DataStax Enterpriseでは、範囲クエリー速度の向上と引き換えに、Solrインデックス・サイズが大きくなります。また、Solrインデックス・サイズの増大と引き換えに、範囲クエリー速度が低下します。この兼ね合いは、特定のユース・ケースとコアごとのケースに適合させることができます。そのためには、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>タグのフィールドとして使用する必要はありません。