Max children is only supported on top level of nested sort – How to solve this Elasticsearch exception

Opster Team

August-23, Version: 7.16-8.9

Briefly, this error occurs when the ‘max_children’ parameter is used in a non-top level of a nested sort in Elasticsearch. The ‘max_children’ parameter is only allowed at the top level of a nested sort. To resolve this issue, you should ensure that ‘max_children’ is only used at the top level of your nested sort. If it’s used in a deeper level, you should refactor your query to comply with this requirement. Alternatively, consider restructuring your data if it’s feasible and would make your queries simpler.

This guide will help you check for common problems that cause the log ” max_children is only supported on top level of nested sort ” to appear. To understand the issues related to this log, read the explanation below about the following Elasticsearch concepts: sort, search.

Log Context

Log “max_children is only supported on top level of nested sort” class name is FieldSortBuilder.java. We extracted the following from Elasticsearch source code for those seeking an in-depth context :

 * Throws an exception if max children is not located at top level nested sort.
 */
 static void validateMaxChildrenExistOnlyInTopLevelNestedSort(SearchExecutionContext context; NestedSortBuilder nestedSort) {
 for (NestedSortBuilder child = nestedSort.getNestedSort(); child != null; child = child.getNestedSort()) {
 if (child.getMaxChildren() != Integer.MAX_VALUE) {
 throw new QueryShardException(context; "max_children is only supported on top level of nested sort");
 }
 }
 }  /**

 

 [ratemypost]