elasticsearch - Elasticsearch Java API:用于文档计数的聚合过滤器

标签 elasticsearch elasticsearch-java-api elasticsearch-aggregation

我想实现一个聚合,仅返回频率高于特定阈值的文档。

例如,这是获取所有文档及其计数的汇总

AggregationBuilder aggregation = AggregationBuilders
                .terms("agg").field("column_name");

所以这给了我column_name中每个值的文档计数
[{"doc_count":30,"key":"val1"},{"doc_count":29,"key":"val2"},{"doc_count":23,"key":"val3"}]

现在,让我说我不想要所有这些文件。我只希望doc_count大于25的那些

所以理想的结果是
[{"doc_count":30,"key":"val1"},{"doc_count":29,"key":"val2"}]
如何将这样的过滤器应用于汇总?我正在查看FilterBuilders和过滤器聚合,但它们是用于对文档中的任何值应用过滤器的。例如,我可以应用过滤器以仅获取val1 == xzacolumn_name的文档

但这不是我想要的。我想在应用聚合后为doc_cunt值应用阈值。

这可能吗?我正在使用Elasticsearch Java API版本1.7.2

最佳答案

术语聚合具有一个内置选项min_doc_count。有关它们的文档,请参见here。我没有使用过Java API,但this example在示例中似乎使用了.minDocCount()(ctrl-f'minDocCount')

关于elasticsearch - Elasticsearch Java API:用于文档计数的聚合过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40155618/

相关文章:

templates - elasticsearch-索引模板创建错误-解析异常,未知 key

elasticsearch - Elasticsearch是否仅对_search端点或全部支持GET over POST?

elasticsearch - Elasticsearch更改内部时区

java - Elasticsearch RestHighLevelClient 缺少传递依赖项

elasticsearch - 加快Elasticsearch字词聚合/SELECT DISTINCT

python - 如何使用elasticsearch生成词云?

python - Elasticsearch查询的默认值

elasticsearch - 对子事件进行排序Elasticsearch JAVA API

date - Elasticsearch中日期数据类型的平均聚合?