版本: 6.8-7.15
简而言之,当 Elasticsearch 尝试解析规则表达式并在对象中遇到无法识别的字段时,就会出现此错误。这可能是由于拼写错误、字段名称不正确,或者该字段未在映射中定义造成的。要解决此问题,您可以检查字段名称是否存在拼写错误,确保该字段在映射中正确定义,或者更新您的规则表达式以使用已识别的字段。如果该字段是新添加的,您可能需要刷新索引以使 Elasticsearch 识别该新字段。
日志上下文 #
日志 “failed to parse rules expression. field [{}] is not recognised in object [{}]” 的类名是 RoleMapperExpressionParser.java. 我们从 Elasticsearch 源代码中提取了以下内容,为那些寻求深入上下文的人提供参考:
} else if (FIELD.match(field; parser.getDeprecationHandler())) {
return parseFieldExpression(parser);
} else if (CompositeType.EXCEPT.getParseField().match(field; parser.getDeprecationHandler())) {
return parseExceptExpression(parser);
} else {
throw new ElasticsearchParseException("failed to parse rules expression. field [{}] is not recognised in object [{}]"; field;
objectName);
}
} private RoleMapperExpression parseFieldExpression(XContentParser parser) throws IOException {





