2016-05-29 2 views
3

doc_count_error_upper_bound属性のelasticsearchで集計クエリの値が常に高くなります。ほぼ10億のドキュメントが索引付けされているESクラスタでは、時には8000または9000と高いです。私は約5Mのドキュメントのインデックスでクエリを実行し、私は約300から500になる値を取得します。簡潔に言えば、elasticsearchのdoc_count_error_upper_boundの重要性とそれを最小限に抑える方法

質問は私の結果がどのように間違っているのですか(私は下のJSONに基づいて上位20カウントのクエリをしようとしています)

"aggs":{ "group_by_creator":{ "terms":{ "field":"creator" } } } } 

答えて

8

これは、でかなりよく説明されています。

termsアグリゲーションを実行すると、各シャードはそれ自身の上位20の用語リストを把握し、上位20語を返します。コーディネーティング・ノードはこれらすべての用語を集め、すべてのシャードの全体的な上位20の用語を得るためにそれらの用語を並べ替えます。

複数のシャードがある場合は、正規のdocの例に示すようにエラーカウントがゼロでない可能性がありますが、compute the doc count errorへの道があります。

インデックスごとに1つのシャードを使用すると、ドキュメントのエラー数は常にゼロになりますが、インデックストポロジによっては、特に10億件を超えるドキュメントがある場合は必ずしも実現可能とは限りません。しかし、5Mドキュメントのインデックスでは、大きなものでなければ、1つのシャードに保存することができます。もちろん、それはあなたのハードウェアに大きく依存しますが、あなたのシャードサイズが15/20GBを超えないなら、あなたは大丈夫でしょう。あなたは、単一のシャードで新しいインデックスを作成し、それがどのようになっているかを見てみるべきです。

+0

答えをありがとう。これは私の質問を解決した – user2530978

関連する問題