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"

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

你可能感兴趣的:(Elasticsearch,elasticsearch,大数据,搜索引擎)