我有一个包含单个节点的集群。 我创建了一个具有默认分片大小的索引 A (即 elasticsearch.yml 文件中 index.number_of_shards:1 的值)。当我列出我的所有分片时,我可以看到索引 A 的单个分片。在此之后,我在 elasticsearch.yml 中更改了 index.number_of_shards:4 的值,然后创建了另一个索引 B 。再次当我在群集中列出我的所有分片时,我只能看到为索引 B 而不是4分片创建的单个分片。 在创建索引和分配分片之前,Elasticsearch是否检查群集中存在的节点总数(在我的情况下,在创建索引 B 时我没有指定任何分片数,所以我期待我的索引总共创建了4个分片。你可以帮帮我吗?
答案 0 :(得分:0)
不推荐使用elasticsearch.yml上的索引配置,而是转而在索引设置/映射上传递此配置。
因此,您需要做的是从elasticsearch.yml文件中删除索引配置,并使用index settings或模板传递它们。来自弹性文档:
curl -XPUT 'http://localhost:9200/twitter/' -d '{
"settings" : {
"index" : {
"number_of_shards" : 3,
"number_of_replicas" : 2
}
}
使用此方法,您可以为每个索引创建不同的配置。
注意:elasticsearch.yml是在启动期间读取的elasticsearch的“全局”/静态配置文件,如果更改它,它将不会影响当前正在运行的实例。