Elasticsearch8报错:node settings must not contain any index level settings解决方法

1、问题:node settings must not contain any index level settings

2、原因:

在 Elasticsearch 节点级别的配置中包含了索引级别的设置。

在 Elasticsearch 8.x 中,节点级别的配置和索引级别的配置应该分开设置,不应该在相同的配置块中混合使用。 确保节点配置文件(通常是 elasticsearch.yml 文件)中没有包含索引级别的设置。

例如,如果elasticsearch.yml中包含了以下类似的配置:

node.name: node-1

node.roles: [ master ]

index.number_of_shards: 3

上述配置中,node.name 和 node.roles是节点级别的配置,而 index.number_of_shards 是索引级别的配置。在 Elasticsearch 8.x 中,节点级别的配置应该在 elasticsearch.yml 中的 node 块中设置,而索引级别的配置应该在索引的创建过程中或通过修改索引的 settings 接口进行设置。

正确的配置方式是:

node.name: node-1

node.roles: [ master ]

然后,在索引创建或修改索引设置时设置 number_of_shards。在 Elasticsearch 中,索引的创建是通过 HTTP 请求发送给 Elasticsearch REST API 完成的,通常使用 PUT 请求创建索引。索引的创建请求可以包含一些配置参数,例如分片数、副本数等。

例如:通过 HTTP 请求创建一个名为 "my_index" 的索引:

PUT /my_index

{

  "settings": {

    "number_of_shards": 3,

    "number_of_replicas": 1

  }

}

在这个例子中,PUT /my_index 是创建索引的请求路径,而请求体中的 JSON 包含了索引的设置。

使用 curl 命令创建索引的示例:

curl -X PUT "http://localhost:9200/my_index" -H 'Content-Type: application/json' -d '

{

  "settings": {

    "number_of_shards": 3,

    "number_of_replicas": 1

  }

}'

在这个示例中,假设 Elasticsearch 运行在本地机器上,并且使用默认端口 9200。

验证索引的创建:

可以使用 curl 或者其他工具来验证索引是否成功创建。以下是一个检查索引是否存在的示例:

curl -X GET "http://localhost:9200/my_index"

如果索引成功创建,将会返回有关索引的信息。

  • 23
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值