【发布时间】:2017-03-17 07:15:00
【问题描述】:
我正在使用以下函数进行聚合查询:
private TermsBuilder getAggregations(String[] outputFields) {
TermsBuilder topLevelAggr = AggregationBuilders.terms("level1").field("field1").size(0);
TermsBuilder aggr2 = AggregationBuilders.terms("level2").field("field2").size(0);
TermsBuilder aggr3 = AggregationBuilders.terms("level3").field("field3").size(0);
TermsBuilder aggr4 = AggregationBuilders.terms("level4").field("field4").size(0);
TopHitsBuilder topHitsBuilder = AggregationBuilders.topHits("doc").setSize(1).addSort("fieldValue", SortOrder.DESC);
aggr4.subAggregation(topHitsBuilder);
aggr3.subAggregation(aggr4);
aggr2.subAggregation(aggr3);
topLevelAggr.subAggregation(aggr2);
topHitsBuilder.setFetchSource(outputFields, new String[]{});
return topLevelAggr;
}
我从这段代码中得到了正确的聚合查询,但在执行查询后我无法提取 top_hits 聚合结果。我在用
io.searchbox.core.SearchResult 类获取查询结果。在这个类中,我找不到任何对 Top_Hits 聚合的支持。
请帮忙。谢谢。
【问题讨论】:
标签: java elasticsearch elastic-stack