构建聚合

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();