0

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"));
Omarkad
  • 279
  • 3
  • 14

1 Answers1

1

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));
utkusonmez
  • 1,486
  • 15
  • 22