我有一个新设置的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 7版发布时会创建分片大小为1的索引,如here
创建索引时,您始终可以使用以下设置指定索引分片。
PUT <your_index_name>
{
"settings" : {
"index" : {
"number_of_shards" : 5
}
}
}
希望这会有所帮助!
较早的Elasticsearch的默认主碎片数为5,这与您正在使用的Elasticsearch 7.X有所不同,因此您只能看到1个主碎片。
[Elasticsearch link,此更改以及有关this SO答案的更多信息。
除了适用于特定索引的API(@Kamal已经提到过,您可以在elasticsearch.yml
中指定此设置,这对创建的每个索引都有效,直到使用API调用覆盖为止。
配置为添加到您的elasticsearch.yml
index.number_of_shards: {your desired number of shards}
注意:这是针对无法动态更改的主分片,因此请谨慎设置,与the number of replicas
不能动态更改。