私のクエリのパフォーマンスを最適化しようとしています。私のクエリにはソートと集計があります。さらに、データをバッチでフェッチする必要があるので、fromおよびsizeパラメータを指定します。エラスティック検索 - サイズとパラメータを含むクエリのキャッシュ結果
私は集計が毎回実行されないようにする要求キャッシュを使用しています。しかし、私はクエリデータをキャッシュする方法を見つけることができませんでした。
を見て:デフォルトでは https://www.elastic.co/guide/en/elasticsearch/reference/current/shard-request-cache.html
」、リクエストのキャッシュは、検索 リクエストサイズ= 0、そう、それはないでしょうキャッシュヒットが、それは ヒットをキャッシュするの結果をキャッシュします。合計、集計、および提案が含まれます。
このような場合に検索結果をキャッシュする方法はありますか?
サンプルクエリ:
GET myIndex/_search?request_cache=true
{
"size": 20,
"from": 0,
"query": { ... },
"sort": { ... },
"aggregations": { ... }
}
検索が遅いです。 Aggsは非常に高速です。私のクエリにはソートがあり、inner_hitsのフェッチもあります。 –
プロファイルAPIを使用するか、kibana x-packをインストールしてこのAPIのUIを使用して、クエリのどの部分が遅いかを確認できます。インデックス構造を変更して最適化する必要があるかどうかを判断するのに役立ちます。ソートのためにdoc値をキャッシュするために、より多くのファイルシステムキャッシュを持つためにもっと多くのメモリを持っていると、遠くから分かりにくいかもしれません。 – alr
ありがとうございます。私はプロファイルapiを使用し、breakdownはcreate_weightとbuild_scorerがクエリの大部分を占めていることを示しています。 –