--- title: "MLT查询不支持currentFieldName – 如何解决此Elasticsearch异常" date: 2026-03-02 lastmod: 2026-03-02 description: "当Elasticsearch中的More Like This (MLT)查询使用了不支持的字段时,会出现此错误。本文介绍如何解决currentFieldName不支持的问题。" tags: ["Elasticsearch", "MLT查询", "查询异常", "More Like This", "字段映射", "解析错误"] summary: "版本: 6.8-8.9 简而言之,当Elasticsearch中的More Like This(mlt)查询使用了不支持的字段时,会出现此错误。“currentFieldName"就是那个不支持的字段。要解决此问题,您可以从查询中删除不支持的字段,或将其替换为mlt查询支持的字段。此外,确保该字段存在于您的索引中并且已正确映射。最后,检查您使用的Elasticsearch版本,因为某些字段在旧版本中可能不受支持。 日志上下文 # 日志”[mlt] query does not support [" + currentFieldName + “]“的类名是 MoreLikeThisQueryBuilder.java。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入背景知识的人参考: } else if ("boost".equals(currentFieldName)) { boost = parser.floatValue(); } else if ("_name".equals(currentFieldName)) { queryName = parser.text(); } else { throw new ParsingException(parser.getTokenLocation(); "[mlt] query does not support [" + currentFieldName + "]"); } } else if (token == XContentParser.Token.START_ARRAY) { if (FIELDS.match(currentFieldName; parser.getDeprecationHandler())) { fields = new ArrayList<>(); while ((token = parser." --- > **版本:** 6.8-8.9 简而言之,当Elasticsearch中的More Like This(mlt)查询使用了不支持的字段时,会出现此错误。"currentFieldName"就是那个不支持的字段。要解决此问题,您可以从查询中删除不支持的字段,或将其替换为mlt查询支持的字段。此外,确保该字段存在于您的索引中并且已正确映射。最后,检查您使用的Elasticsearch版本,因为某些字段在旧版本中可能不受支持。 ## 日志上下文 日志"[mlt] query does not support [" + currentFieldName + "]"的类名是[MoreLikeThisQueryBuilder.java](https://www.geeksforgeeks.org/java-lang-class-class-java-set-1/)。我们从Elasticsearch源代码中提取了以下内容,供那些寻求深入背景知识的人参考: ```java } else if ("boost".equals(currentFieldName)) { boost = parser.floatValue(); } else if ("_name".equals(currentFieldName)) { queryName = parser.text(); } else { throw new ParsingException(parser.getTokenLocation(); "[mlt] query does not support [" + currentFieldName + "]"); } } else if (token == XContentParser.Token.START_ARRAY) { if (FIELDS.match(currentFieldName; parser.getDeprecationHandler())) { fields = new ArrayList<>(); while ((token = parser.nextToken()) != XContentParser.Token.END_ARRAY) { ```