elasticsearch - 将聚合限制在 elasticsearch 中的前 X 命中

标签 elasticsearch aggregation elasticsearch-aggregation

ElasticSearch 独立于 from 和 size 参数,基于查询的所有命中构建聚合结果。在大多数情况下,这是我们想要的,但我有一个特殊情况,我需要将聚合限制为前 N 个命中。 limits 过滤器不适合,因为它不获取最好的 N 个项目,而只获取与查询(每个分片)匹配的第一个 X,而与它们的分数无关。

有没有什么方法可以构建命中数上限为 N 的查询,以便能够构建仅限于前 N 个结果的聚合?如果是这样的话?

附属问题:限制匹配文档的分数可能是一种替代方法,即使在我的情况下我需要一个固定的界限。 min_score 参数是否影响聚合?

最佳答案

您正在寻找Sampler Aggregation .

我有一个类似的答案解释here

Optionally, you can use the field or script and max_docs_per_value settings to control the maximum number of documents collected on any one shard which share a common value.

关于elasticsearch - 将聚合限制在 elasticsearch 中的前 X 命中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25429903/

相关文章:

java - 为什么主对象被销毁后,次对象还继续存在,是委托(delegate)而不是聚合?

elasticsearch - ElasticSearch按汇总结果过滤

Elasticsearch 多个聚合不起作用

templates - Logstash模板不适合增加分片数量

javascript - AWS.HttpClient handleRequest 在 AWS lambda 中不起作用

java - 如何在 Elasticsearch 中索引 pdf 文档内容?

elasticsearch - .keyword上的聚合仅返回包含特定字符串的键

python - 像这样的Elasticsearch更像:相同的请求不同的响应

mysql - 星型模式聚合问题

elasticsearch - Elasticsearch 如何使用不得在过滤器内查询