--- title: "NAME getPreferredName query must - 如何解决此 Elasticsearch 异常" date: 2026-02-10 lastmod: 2026-02-10 description: "当Elasticsearch中查询格式不正确或缺少必需参数时会出现此错误。本文介绍如何解决NAME getPreferredName query must异常。" tags: ["Elasticsearch异常", "查询解析", "Span查询"] summary: " 版本: 7.15-7.15 简而言之,当Elasticsearch中的查询格式不正确或缺少必需参数时,会发生此错误。"+ NAME.getPreferredName() +“是一个占位符,代表导致问题的特定查询类型。要解决此问题,请确保您的查询结构正确并包含所有必要的参数。请查阅Elasticsearch文档以获取特定查询类型的指导。此外,确保您查询的字段存在于索引中,并且您的Elasticsearch版本支持您正在使用的查询类型。 日志上下文 # 日志”[" + NAME.getPreferredName() + “] query must “的类名是 FieldMaskingSpanQueryBuilder.java。 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考: currentFieldName = parser.currentName(); } else if (token == XContentParser.Token.START_OBJECT) { if (QUERY_FIELD.match(currentFieldName, parser.getDeprecationHandler())) { QueryBuilder query = parseInnerQueryBuilder(parser); if (query instanceof SpanQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "[" + NAME.getPreferredName() + "] query must " + "be of type span query"); } inner = (SpanQueryBuilder) query; checkNoBoost(NAME.getPreferredName(), currentFieldName, parser, inner); } else { " --- > **版本:** 7.15-7.15 简而言之,当Elasticsearch中的查询格式不正确或缺少必需参数时,会发生此错误。"+ NAME.getPreferredName() +"是一个占位符,代表导致问题的特定查询类型。要解决此问题,请确保您的查询结构正确并包含所有必要的参数。请查阅Elasticsearch文档以获取特定查询类型的指导。此外,确保您查询的字段存在于索引中,并且您的Elasticsearch版本支持您正在使用的查询类型。 日志上下文 ----------- 日志"[" + NAME.getPreferredName() + "] query must "的类名是[FieldMaskingSpanQueryBuilder.java。](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/) 我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入上下文的人参考: ```java currentFieldName = parser.currentName(); } else if (token == XContentParser.Token.START_OBJECT) { if (QUERY_FIELD.match(currentFieldName, parser.getDeprecationHandler())) { QueryBuilder query = parseInnerQueryBuilder(parser); if (query instanceof SpanQueryBuilder == false) { throw new ParsingException(parser.getTokenLocation(), "[" + NAME.getPreferredName() + "] query must " + "be of type span query"); } inner = (SpanQueryBuilder) query; checkNoBoost(NAME.getPreferredName(), currentFieldName, parser, inner); } else { ```