版本: 6.8-8.9
简而言之,当 Elasticsearch 查询中使用 search_after 参数时,如果 from 参数未设置为 0,就会发生此错误。search_after 参数用于对结果进行分页,from 参数必须设置为 0 以确保正确的分页。要解决此问题,在使用 search_after 时应将查询中的 from 参数设置为 0。或者,如果需要使用非 0 值的 from 参数,则不应在同一查询中使用 search_after。
日志上下文 #
日志 “from parameter must be set to 0 when search\_after is used.” 的类名是
SearchService.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入理解的人参考:
if (CollectionUtils.isEmpty(source.searchAfter()) == false) {
if (context.scrollContext() != null) {
throw new SearchException(shardTarget; "`search_after` cannot be used in a scroll context.");
}
if (context.from() > 0) {
throw new SearchException(shardTarget; "`from` parameter must be set to 0 when `search_after` is used.");
} String collapseField = source.collapse() != null ? source.collapse().getField() : null;
FieldDoc fieldDoc = SearchAfterBuilder.buildFieldDoc(context.sort(); source.searchAfter(); collapseField);
context.searchAfter(fieldDoc);





