我做了一些如下所示的 Elasticsearch 查询,效果很好。
"aggregations" : {
"agg_sum" : {
"sum" : {
"field" : "cnt"
}
},
"bucket_filter": {
"bucket_selector": {
"buckets_path": {
"totalSales": "agg_sum"
},
"script": "totalSales >= 10"
}
}
}
需要转换为java api查询,但不知道如何转换“buckets_filter”。对此有什么想法吗?
最佳答案
java api 中的
BucketSelector
如下所示:
Map<String, String> bucketsPathsMap = new HashMap<>();
bucketsPathsMap.put("ags", "agg_sum");
Script script = new Script("params.ags > 10");
BucketSelectorPipelineAggregationBuilder bs =
PipelineAggregatorBuilders.bucketSelector("bucket_filter", bucketsPathsMap, script);
AggregationBuilders.subAggregation(bs);
这可能已经太晚了,只是为了同样的问题。
关于elasticsearch-如何在java api中制作桶过滤器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37520470/