ノードクエリキャッシュ設定

フィルターコンテキストで使用されるクエリの結果は、迅速な検索のためにノードクエリキャッシュにキャッシュされます。すべてのシャードで共有されるノードごとに1つのクエリキャッシュがあります。キャッシュはLRU(最少最近使用)排除ポリシーを使用します:キャッシュが満杯になると、最も最近使用されていないクエリ結果が新しいデータのために排除されます。クエリキャッシュの内容を検査することはできません。

タームクエリおよびフィルターコンテキスト外で使用されるクエリはキャッシュの対象外です。

デフォルトでは、キャッシュは最大10000クエリを保持し、全ヒープスペースの最大10%を使用します。クエリがキャッシュの対象かどうかを判断するために、Elasticsearchは発生を追跡するクエリ履歴を維持します。

キャッシングは、セグメントが少なくとも10000ドキュメントを含み、セグメントがシャードの総ドキュメントの少なくとも3%を持つ場合に、セグメントごとに行われます。キャッシングはセグメントごとに行われるため、セグメントのマージはキャッシュされたクエリを無効にする可能性があります。

次の設定は静的であり、クラスター内のすべてのデータノードで構成する必要があります:

  • indices.queries.cache.size
  • (静的) フィルターキャッシュのメモリサイズを制御します。5%のようなパーセンテージ値または512mbのような正確な値を受け入れます。デフォルトは10%です。

クエリキャッシュインデックス設定

次の設定はインデックス設定であり、インデックスごとに構成できます。インデックス作成時またはクローズドインデックスでのみ設定できます:

  • index.queries.cache.enabled
  • (静的) クエリキャッシングを有効にするかどうかを制御します。true(デフォルト)またはfalseを受け入れます。