环境es5
1.根据原数据字段分组后进行排序:
service_duration_agg = AggregationBuilders.terms("serviceAgg").field(ESConstUtil.METHOD).order(Terms.Order.count(false)).size(3);
Terms.Order.count(false):表示根据这个字段的count进行排序,true正序,false倒叙。
size:排序后取top几
2.嵌套聚合后进行排序
根据subAggregation里面计算后的字段进行排序(avgDuration)
AggregationBuilder duration_agg = AggregationBuilders.avg("avgDuration").field(ESConstUtil.DURATION);
service_duration_agg = AggregationBuilders.terms("serviceAgg").field(ESConstUtil.METHOD).subAggregation(duration_agg)
.order(Terms.Order.aggregation("avgDuration",false)).size(3);
Terms.Order.aggregation("avgDuration",false):根据avgDuration的计算后的value值进行排序而不再根据doc_count进行排序。
949

被折叠的 条评论
为什么被折叠?



