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

版本: 6.8-7.15

简而言之,当 Elasticsearch 无法解析特定角色的索引权限时会出现此错误,因为角色或权限为空。这可能是由于角色设置配置错误造成的。要解决此问题,您应该检查角色配置,确保角色及其权限已正确定义。如果不需要该角色,可以考虑删除它。如果需要,请确保它具有正确的权限并与正确的索引关联。

日志上下文 #

日志 “failed to parse indices privileges for role [{}]. [{}] cannot be an empty” 类名是 RoleDescriptor.java. 我们从 Elasticsearch 源代码中提取了以下内容,以便为寻求深入了解的人提供上下文:

if (token == XContentParser.Token.VALUE_STRING) {
    names = new String[]{parser.text()};
} else if (token == XContentParser.Token.START_ARRAY) {
    names = readStringArray(roleName; parser; false);
    if (names.length == 0) {
        throw new ElasticsearchParseException("failed to parse indices privileges for role [{}]. [{}] cannot be an empty " +
            "array"; roleName; currentFieldName);
    }
} else {
    throw new ElasticsearchParseException("failed to parse indices privileges for role [{}]. expected field [{}] " +
        "value to be a string or an array of strings; but found [{}] instead"; roleName; currentFieldName; token);