NOTE: You are looking at documentation for an older release. For the latest information, see the current release documentation.
Structuring aggregationsedit
As explained in the Aggregations guide, you can define sub aggregations inside an aggregation.
An aggregation could be a metrics aggregation or a bucket aggregation.
For example, here is a 3 levels aggregation composed of:
- Terms aggregation (bucket)
- Date Histogram aggregation (bucket)
- Average aggregation (metric)
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();