我有一个新设置的 Elasticsearch 7.5.2 集群。当我创建索引时,默认只创建一个分片。
我的集群策略如下:
Total Nodes: 5
--------------
Node 1 & Node 2 - Master Only
Node 3 - Master & Data Node
Node 4 & Node 5 - Data Only
找不到任何限制分片创建索引的集群设置。 是集群策略的问题还是我在这里遗漏了任何设置?
请帮我找出问题所在。
早期 Elasticsearch 的默认主分片数为 5,这与您正在使用的 Elasticsearch 7.X 不同,因此您只看到 1 个主分片。
此更改的Elasticsearch 链接以及有关此SO 答案的更多信息。
除了适用于特定索引的 API(@Kamal 已经提到)之外,您可以在您的 中指定此设置elasticsearch.yml
,这将对创建的每个索引有效,直到您使用 API 调用覆盖。
配置添加到您的elasticsearch.yml
index.number_of_shards: {your desired number of shards}
注意:这适用于不能动态更改的主分片,因此请谨慎设置,与the number of replicas
可以动态更改的不同。
那是对的。发布版本 7,Elasticsearch 默认创建分片大小为 1 的索引,如此处所述
在创建索引时,您始终可以使用以下设置指定索引分片。
PUT <your_index_name>
{
"settings" : {
"index" : {
"number_of_shards" : 5
}
}
}
希望这可以帮助!