Elasticsearch-凍結インデックス

頻繁に検索されるインデックスは、再構築に時間がかかり、効率的な検索に役立つため、メモリに保持されます。一方で、めったにアクセスしないインデックスもあるかもしれません。これらのインデックスはメモリを占有する必要はなく、必要に応じて再構築できます。このようなインデックスは、凍結インデックスとして知られています。

Elasticsearchは、シャードが検索されるたびに、フリーズされたインデックスの各シャードの一時的なデータ構造を構築し、検索が完了するとすぐにこれらのデータ構造を破棄します。Elasticsearchはこれらの一時的なデータ構造をメモリに保持しないため、フリーズされたインデックスは通常のインデックスよりもはるかに少ないヒープを消費します。これにより、ディスクとヒープの比率を他の方法よりもはるかに高くすることができます。

凍結と解凍の例

次の例では、インデックスをフリーズおよびフリーズ解除します-

POST /index_name/_freeze
POST /index_name/_unfreeze

凍結されたインデックスの検索は、実行が遅くなると予想されます。凍結されたインデックスは、高い検索負荷を対象としていません。インデックスがフリーズされていないときに同じ検索がミリ秒単位で完了した場合でも、フリーズされたインデックスの検索が完了するまでに数秒または数分かかる場合があります。

凍結インデックスの検索

ノードごとに同時にロードされるフリーズされたインデックスの数は、search_throttledスレッドプール内のスレッドの数によって制限されます。デフォルトでは1です。フリーズされたインデックスを含めるには、クエリパラメータ-ignore_throttled = falseを使用して検索リクエストを実行する必要があります

GET /index_name/_search?q=user:tpoint&ignore_throttled=false

凍結インデックスの監視

凍結インデックスは、検索スロットリングとメモリ効率の高いシャード実装を使用する通常のインデックスです。

GET /_cat/indices/index_name?v&h=i,sth