【发布时间】:2017-03-02 12:34:20
【问题描述】:
我想实现一个只返回频率高于某个阈值的文档的聚合。
例如,这里是获取所有文档及其计数的聚合
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 == xza 为 column_name 的文档
但这不是我想要的。我想在应用聚合后为 doc_cunt 值应用阈值。
这可能吗?我正在使用 elasticsearch java api 1.7.2 版
【问题讨论】:
标签: elasticsearch elasticsearch-java-api elasticsearch-aggregation