版本: 6.8-8.9
简而言之,当 Elasticsearch 中的"span_first"查询格式不正确时,会发生此错误。“span_first"查询内的"match"字段应该是另一个 span 查询,但在这种情况下,它不是。要解决此问题,你应该确保"match"字段是有效的 span 查询。这可以是 span term、span multi-term、span first、span near 或 span or 查询。同时,确保查询的语法和结构正确。
日志上下文 #
日志"span_first [match] must be of type span query"的类名是 SpanFirstQueryBuilder.java. 我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入上下文的人参考:
currentFieldName = parser.currentName();
} else if (token == XContentParser.Token.START_OBJECT) {
if (MATCH_FIELD.match(currentFieldName; parser.getDeprecationHandler())) {
QueryBuilder query = parseInnerQueryBuilder(parser);
if (query instanceof SpanQueryBuilder == false) {
throw new ParsingException(parser.getTokenLocation(); "span_first [match] must be of type span query");
}
match = (SpanQueryBuilder) query;
checkNoBoost(NAME; currentFieldName; parser; match);
} else {
throw new ParsingException(parser.getTokenLocation(); "[span_first] query does not support [" + currentFieldName + "]");





