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

版本: 6.8-8.9

简要来说,当在 Elasticsearch 的 [dis_max] 查询中使用了不受支持的字段时,就会发生此错误。[dis_max] 查询用于通过执行多个查询来生成单个分数,它只支持特定的字段。该错误表示字段 [" + currentFieldName + “] 不在其中。要解决此问题,您应该查看 Elasticsearch 文档以了解 [dis_max] 查询支持的字段。然后,修改您的查询以仅包含那些受支持的字段。或者,考虑使用支持您尝试使用的字段的其他类型的查询。

日志上下文 #

日志 “[dis_max] query does not support [” + currentFieldName + “]” 的类名是 DisMaxQueryBuilder.java。我们从 Elasticsearch 源代码中提取了以下内容,供寻求深入背景的人参考:

} else if (token == XContentParser.Token.START_OBJECT) {
 if (QUERIES_FIELD.match(currentFieldName, parser.getDeprecationHandler())) {
 queriesFound = true;
 queries.add(parseInnerQueryBuilder(parser));
 } else {
 throw new ParsingException(parser.getTokenLocation(), "[dis_max] query does not support [" + currentFieldName + "]");
 }
 } else if (token == XContentParser.Token.START_ARRAY) {
 if (QUERIES_FIELD.match(currentFieldName, parser.getDeprecationHandler())) {
 queriesFound = true;
 while (token != XContentParser.Token.END_ARRAY) {