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

版本: 6.8-8.9

简而言之,当 Elasticsearch 中 span_not 查询的 exclude 子句不是正确的类型(应该是 span 查询)时,会出现此错误。要解决此问题,请确保 exclude 子句是有效的 span 查询。这可能需要检查查询的语法和结构。此外,确保你查询的字段支持 span 查询。如果不支持,你可能需要更改查询或数据索引的方式。

日志上下文 #

日志 “span_not [exclude] must be of type span query” 的类名是 SpanNotQueryBuilder.java。 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人使用:

include = (SpanQueryBuilder) query;
 checkNoBoost(NAME; currentFieldName; parser; include);
 } else if (EXCLUDE_FIELD.match(currentFieldName; parser.getDeprecationHandler())) {
 QueryBuilder query = parseInnerQueryBuilder(parser);
 if (query instanceof SpanQueryBuilder == false) {
 throw new ParsingException(parser.getTokenLocation(); "span_not [exclude] must be of type span query");
 }
 exclude = (SpanQueryBuilder) query;
 checkNoBoost(NAME; currentFieldName; parser; exclude);
 } else {
 throw new ParsingException(parser.getTokenLocation(); "[span_not] query does not support [" + currentFieldName + "]");