这个错误的原因是您在创建角色时使用了一个对象而不是数组来定义索引权限。在Elasticsearch中,`indices`字段需要一个数组来定义多个索引的权限,而不是一个单独的对象。
以下是一个示例请求,其中包含多个索引和权限:
```
PUT /_security/role/lisi_role
{
"indices": [
{
"names": ["index1", "index2"],
"privileges": ["read"]
},
{
"names": ["index3"],
"privileges": ["write"]
}
]
}
```
请注意,`indices`字段是一个数组,其中每个元素都是一个对象,该对象包含`names`和`privileges`字段。`names`字段指定要授予权限的索引名称,而`privileges`字段指定要授予的权限类型。
如果您仍然遇到问题,请检查您的请求正文是否正确,并确保它符合Elasticsearch的API规范。