构建聚合
如 Aggregations guide ( 中文 )所述,你可以在聚合中定义子聚合。
聚合可以是 指标(Metrics) 聚合或者是 桶(Buckets) 聚合。
例如,这个例子里有3个聚合,分别由下面这些部分组成:
-
条件聚合(桶)
-
日期柱状图聚合(桶)
-
平均值聚合(指标)
SearchResponse sr = node.client().prepareSearch()
.addAggregation(
AggregationBuilders.terms("by_country").field("country")
.subAggregation(AggregationBuilders.dateHistogram("by_year")
.field("dateOfBirth")
.dateHistogramInterval(DateHistogramInterval.YEAR)
.subAggregation(AggregationBuilders.avg("avg_children").field("children"))
)
)
.execute().actionGet();