8

ElasticSearch は、from パラメーターと size パラメーターに関係なく、クエリのすべてのヒットに基づいて集計結果を作成します。これはほとんどの場合に必要なことですが、集計を上位 N 件のヒットに制限する必要がある特定のケースがあります。制限フィルターは、最適な N 個のアイテムを取得するのではなく、スコアとは無関係に (シャードごとに) クエリに一致する最初の X のみを取得するため、適切ではありません。

上位 N 個の結果に限定された集計を作成できるようにするために、ヒット カウントの上限が N であるクエリを作成する方法はありますか? もしそうなら、どのように?

補助的な質問:私の場合は固定境界が必要ですが、一致するドキュメントのスコアを制限することも代替手段になる可能性があります。min_score パラメータは集計に影響しますか?

4

4 に答える 4

1

Sampler Aggregationを探しています。

ここで説明した同様の答えがあります

オプションで、フィールドまたはスクリプトと max_docs_per_value 設定を使用して、共通の値を共有する任意の 1 つのシャードで収集されるドキュメントの最大数を制御できます。

于 2016-03-16T03:33:23.290 に答える
0

バージョン > 1.3 の ElasticSearch クラスターを使用している場合は、top_hits 集計を集計にネストし、必要なフィールドで並べ替え、sizeパラメーターを Xに設定することで使用できます。

関連ドキュメントはここにあります。

于 2014-08-21T15:18:09.083 に答える