diff --git a/src/main/java/org/elasticsearch/search/aggregations/metrics/tophits/TopHitsParser.java b/src/main/java/org/elasticsearch/search/aggregations/metrics/tophits/TopHitsParser.java index 4a4b60ad8d850..fb5903d54a7cc 100644 --- a/src/main/java/org/elasticsearch/search/aggregations/metrics/tophits/TopHitsParser.java +++ b/src/main/java/org/elasticsearch/search/aggregations/metrics/tophits/TopHitsParser.java @@ -70,6 +70,10 @@ public AggregatorFactory parse(String aggregationName, XContentParser parser, Se while ((token = parser.nextToken()) != XContentParser.Token.END_OBJECT) { if (token == XContentParser.Token.FIELD_NAME) { currentFieldName = parser.currentName(); + } else if ("sort".equals(currentFieldName)) { + sortParseElement.parse(parser, topHitsContext); + } else if ("_source".equals(currentFieldName)) { + sourceParseElement.parse(parser, topHitsContext); } else if (token.isValue()) { switch (currentFieldName) { case "from": @@ -78,9 +82,6 @@ public AggregatorFactory parse(String aggregationName, XContentParser parser, Se case "size": topHitsContext.size(parser.intValue()); break; - case "sort": - sortParseElement.parse(parser, topHitsContext); - break; case "track_scores": case "trackScores": topHitsContext.trackScores(parser.booleanValue()); @@ -96,12 +97,6 @@ public AggregatorFactory parse(String aggregationName, XContentParser parser, Se } } else if (token == XContentParser.Token.START_OBJECT) { switch (currentFieldName) { - case "sort": - sortParseElement.parse(parser, topHitsContext); - break; - case "_source": - sourceParseElement.parse(parser, topHitsContext); - break; case "highlight": highlighterParseElement.parse(parser, topHitsContext); break; @@ -114,9 +109,6 @@ public AggregatorFactory parse(String aggregationName, XContentParser parser, Se } } else if (token == XContentParser.Token.START_ARRAY) { switch (currentFieldName) { - case "sort": - sortParseElement.parse(parser, topHitsContext); - break; case "fielddataFields": case "fielddata_fields": fieldDataFieldsParseElement.parse(parser, topHitsContext);