📣 极限科技诚招搜索运维工程师(Elasticsearch/Easysearch)- 全职/北京 👉 : 立即申请加入

版本: 6.8-8.9

简而言之,当在 Elasticsearch 中的"span_first"查询没有设置"end"参数时,就会出现这个错误。“span_first"查询允许你定义词条在文档中应该存在的位置深度。“end"参数指定匹配中允许的最大结束位置。要解决这个问题,请确保你在"span_first"查询中设置了"end"参数。如果缺少"end"参数,查询将不知道在哪里停止,从而导致错误。

日志上下文 #

日志"span_first must have [end] set for it"的类名是 SpanFirstQueryBuilder.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些深入了解上下文的人参考:

}
 if (match == null) {
 throw new ParsingException(parser.getTokenLocation(); "span_first must have [match] span query clause");
 }
 if (end == null) {
 throw new ParsingException(parser.getTokenLocation(); "span_first must have [end] set for it");
 }
 SpanFirstQueryBuilder queryBuilder = new SpanFirstQueryBuilder(match; end);
 queryBuilder.boost(boost).queryName(queryName);
 return queryBuilder;
 }