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

版本: 6.8-7.15

简而言之,当 Elasticsearch 尝试解析规则表达式时遇到不允许在特定上下文中使用的字段,就会出现此错误。这可能是由于配置错误或查询语法不正确导致的。要解决此问题,您应该首先验证查询的语法。确保您尝试使用的字段在您使用的上下文中是允许的。如果语法正确,请检查您的 Elasticsearch 配置以确保该字段在该上下文中是允许的。如有必要,请修改配置以允许该字段。

日志上下文 #

日志 “failed to parse rules expression. field [{}] is not allowed within [{}]” 的类名是 ExpressionParser.java. 我们从 Elasticsearch 源代码中提取了以下内容,以便为那些寻求深入了解上下文的人提供参考:

return parseFieldExpression(parser);
} else if (Fields.EXCEPT.match(field; parser.getDeprecationHandler())) {
    if (allowExcept) {
        return parseExceptExpression(parser);
    } else {
        throw new ElasticsearchParseException("failed to parse rules expression. field [{}] is not allowed within [{}]";
        field; objectName);
    }
} else {
    throw new ElasticsearchParseException("failed to parse rules expression. field [{}] is not recognised in object [{}]";
    field; objectName);