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

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

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

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

CQLインデックス管理コマンドを使用して、各検索インデックス構成でqueryExecutorThreadsの数を設定します。
  1. 既存のテーブル上のスレッドの数を変更します。
    ALTER SEARCH INDEX CONFIG ON healthcare.health_data SET config.queryExecutorThreads=4;
  2. 保留中の検索インデックス構成をXML形式で表示するには、以下のCQLシェル・コマンドを使用します。
    DESCRIBE PENDING SEARCH INDEX CONFIG ON healthcare.health_data;
    結果はXML形式で以下のように表示されます。
    <config>
      ...
    <query>
        <maxBooleanClauses>1024</maxBooleanClauses>
        <filterCache class="solr.SolrFilterCache" highWaterMarkMB="2048" lowWaterMarkMB="1024"/>
        <enableLazyFieldLoading>true</enableLazyFieldLoading>
        <useColdSearcher>true</useColdSearcher>
        <maxWarmingSearchers>16</maxWarmingSearchers>
      ...
    </query>
    ...
        <queryExecutorThreads>4</queryExecutorThreads>
    </config>
      ...
  3. 保留中の変更を検索インデックスに適用するには、RELOAD SEARCH INDEXコマンドを使用します。
    RELOAD SEARCH INDEX ON healthcare.health_data;
  4. アクティブな検索インデックスをXML形式で表示するには、以下のように入力します。
    DESCRIBE ACTIVE SEARCH INDEX CONFIG ON healthcare.health_data;