ノードクエリキャッシュ設定
フィルターコンテキストで使用されるクエリの結果は、迅速な検索のためにノードクエリキャッシュにキャッシュされます。すべてのシャードで共有されるノードごとに1つのクエリキャッシュがあります。キャッシュはLRU(最少最近使用)排除ポリシーを使用します:キャッシュが満杯になると、最も最近使用されていないクエリ結果が新しいデータのために排除されます。クエリキャッシュの内容を検査することはできません。
タームクエリおよびフィルターコンテキスト外で使用されるクエリはキャッシュの対象外です。
デフォルトでは、キャッシュは最大10000クエリを保持し、全ヒープスペースの最大10%を使用します。クエリがキャッシュの対象かどうかを判断するために、Elasticsearchは発生を追跡するクエリ履歴を維持します。
キャッシングは、セグメントが少なくとも10000ドキュメントを含み、セグメントがシャードの総ドキュメントの少なくとも3%を持つ場合に、セグメントごとに行われます。キャッシングはセグメントごとに行われるため、セグメントのマージはキャッシュされたクエリを無効にする可能性があります。
次の設定は静的であり、クラスター内のすべてのデータノードで構成する必要があります:
indices.queries.cache.size
- (静的) フィルターキャッシュのメモリサイズを制御します。
5%
のようなパーセンテージ値または512mb
のような正確な値を受け入れます。デフォルトは10%
です。
クエリキャッシュインデックス設定
次の設定はインデックス設定であり、インデックスごとに構成できます。インデックス作成時またはクローズドインデックスでのみ設定できます:
index.queries.cache.enabled
- (静的) クエリキャッシングを有効にするかどうかを制御します。
true
(デフォルト)またはfalse
を受け入れます。