【发布时间】:2016-01-10 04:02:25
【问题描述】:
我想做一个过滤聚合、嵌套聚合,然后是 3 个兄弟聚合。我已经对此进行了测试,它可以使用 REST API 工作。这是我使用的查询:
{
"aggs": {
"filter_agg": {
"filter": {
...
},
"aggs": {
"nested_agg": {
"nested": {
"path": "myProperty"
},
"aggs": {
"sibling_agg_1": {
...
},
"sibling_agg_2": {
...
},
"sibling_agg_3": {
...
}
}
}
}
}
}
}
现在,我想在我的代码库中使用 Java API 来实现这个查询。我不确定如何进行兄弟聚合,因为FilterAggregationBuilder 唯一可用的方法是subAggregation()。
在 Java API 的上下文中,这些兄弟聚合是子聚合吗?
我开始写的Java代码是这样的:
client.prepareSearch(index)
.setTypes(types)
.setSearchType(SearchType.COUNT)
.addAggregation(myFilterAggregation
.subAggregation(AggregationBuilders.nested("nested_agg").path("myProperty"))
然后我可以继续构建SearchRequestBuilder 的唯一方法是更多subAggregation - 这是实现此功能的正确方法吗?在这种情况下,REST API 和 Java API 似乎有所不同。
【问题讨论】:
标签: java elasticsearch