マルチスレッド・クエリーの有効化

過剰な書き込みが存在する場合にマルチスレッドを有効にするための手順。

マルチスレッド・クエリーは、クエリーの実行時間が長くインデックス・ボリュームが小さい場合に役立ちます。

マルチスレッド・クエリーは、ディスクに対する書き込みと読み取りを行うのではなく、CPUに与えるクエリーの負荷をオフセットできます。ベンチマークが推奨され、マルチスレッド・クエリーが必ずパフォーマンスを改善するとは限りません。

CQLインデックス管理コマンドを使用して、各検索インデックス構成でqueryExecutorThreadsの数を設定します。
  1. 既存のテーブル上のスレッドの数を変更します。
    ALTER SEARCH INDEX CONFIG ON demo.health_data SET query.queryExecutorThreads=4;
  2. 保留中の検索インデックス構成をXML形式で表示するには、以下のCQLシェル・コマンドを使用します。
    DESCRIBE ACTIVE SEARCH INDEX CONFIG ON demo.health;
    結果はXML形式で以下のように表示されます。
    ...</indexConfig> ...<query> <maxBooleanClauses>1024</maxBooleanClauses> <filterCache class="solr.SolrFilterCache" highWaterMarkMB="2048" lowWaterMarkMB="1024"/> <enableLazyFieldLoading>true</enableLazyFieldLoading> <useColdSearcher>true</useColdSearcher> <maxWarmingSearchers>16</maxWarmingSearchers> <queryExecutorThreads>4</queryExecutorThreads> </query> ...
    マルチスレッド値がqueryExecutorThreads>4</queryExecutorThreads>と表示されています。 XML要素は、要素開始タグとともに表示されます。省略記号は、その他の要素または属性が表示されていないことを示しています。
  3. 保留中の変更をアクティブな検索インデックスに適用するには、RELOAD SEARCH INDEXコマンドを使用します。
    RELOAD SEARCH INDEX ON demo.health_data;
  4. アクティブな検索インデックスをXML形式で表示するには、以下のように入力します。
    DESCRIBE ACTIVE SEARCH INDEX CONFIG ON demo.health;