版本: 6.8-8.9
简要来说,当您尝试在 Elasticsearch 查询的 “fields” 部分中指定非字段时,就会出现此错误。这是不允许的,因为此部分只能指定实际字段。要解决此问题,请确保您在 “fields” 部分中只指定实际字段。如果您尝试指定嵌套字段,请确保使用正确的点号表示法。此外,检查查询中是否存在任何拼写错误或不正确的字段名。最后,确保您指定的字段在 Elasticsearch 索引中实际存在。
日志上下文 #
日志 “illegal field [” + multiFieldName + “]; only fields can be specified inside fields” 的类名是 TypeParsers.java,我们从 Elasticsearch 源代码中提取了以下内容,供那些寻求深入了解上下文的人参考:
throw new MapperParsingException(
"Field name [" + multiFieldName + "] which is a multi field of [" + name + "] cannot contain '.'"
);
}
if ((multiFieldEntry.getValue() instanceof Map) == false) {
throw new MapperParsingException("illegal field [" + multiFieldName + "]; only fields can be specified inside fields");
}
MapmultiFieldNodes = (Map) multiFieldEntry.getValue(); String type;
Object typeNode = multiFieldNodes.get("type");





