Omarkad
Omarkad

Reputation: 289

Successive aggregation elasticsearch java API

I've an a successive set of aggregations in a search request :

"aggs": {
    "nested_max": {
        "nested": {
            "path": "questionResponses"
        },
        "aggs": {
            "filter_max": {
                "filter": {
                    "term": {
                        "questionResponses.key": "announcement.question.tri"
                }
            },
            "aggs": {
                "agg_max": {
                    "max": {
                        "field": "questionResponses.numericValue"
                    }
                }
            }
        }
    }
}

Can someone please help me translate this chunk of request to java code : what I've done (but doesn't work):

   NestedAggregationBuilder maxAggregation = 
AggregationBuilders.nested("nested_max", questionResponses)
                   .subAggregation(AggregationBuilders.filter("filter_max", QueryBuilders.termQuery("announcement.question.tri", "announcement.question.tri")))
                   .subAggregation(AggregationBuilders.max("agg_max").field("questionResponses.numericValue"));

Upvotes: 0

Views: 80

Answers (1)

utkusonmez
utkusonmez

Reputation: 1506

You should add agg_max sub aggregation to filter_max aggs.

filterMax = AggregationBuilders.filter(....);
aggMax = AggregationBuilders.max("agg_max")..;

NestedAggregationBuilder maxAggregation = 
AggregationBuilders.nested("nested_max", questionResponses)
                   .subAggregation(aggFilterMax.subAggregation(aggMax));

Upvotes: 1

Related Questions