ウェブサイトがロードされるたびに実行されるクエリがあります。このクエリは、3つの異なる用語フィールドと約300万のドキュメントを集約し、したがって完了までに6〜7秒を要します。データはそれを頻繁に変えず、結果の現状は重要ではありません。ElasticSearchのような「マテリアライズドビュー」のようなもの
私は別名を使用してRDMSの世界のような「ビュー」を作成できることを知っています。それを埋めることも可能なので、クエリの結果はキャッシュされますか?このシナリオでキャッシュが助けになる他の方法はありますか、集計されたデータの追加インデックスを作成し、時々更新する必要がありますか?
3百万個のドキュメントを集約するのは本当にたくさんありません。クエリが実行されてから最初に最適化されるまでに6〜7秒かかるのはなぜか分かります。 – Val
さて、どうすればいい?私はslowlogsを有効にしましたが、あなたにはあまり情報がありません。 'aggFieldName ':{" terms ":{" field ":" myField "、" size ":0}}、' – nik
最初に 'あなたのクエリーで「explain = true」を読んで、いくつかの洞察を得てください。次に、[Profile API](https://www.elastic.co/guide/en/elasticsearch/reference/current/_profiling_aggregations.html)を使用して集計をプロファイリングすることができます – Val