在创建分片之前,Elasticsearch是否检查群集中可用的节点数(在选择默认分片大小的情况下)

时间:2017-02-23 06:08:40

标签: elasticsearch

我有一个包含单个节点的集群。 我创建了一个具有默认分片大小的索引 A (即 elasticsearch.yml 文件中 index.number_of_shards:1 的值)。当我列出我的所有分片时,我可以看到索引 A 的单个分片。在此之后,我在 elasticsearch.yml 中更改了 index.number_of_shards:4 的值,然后创建了另一个索引 B 。再次当我在群集中列出我的所有分片时,我只能看到为索引 B 而不是4分片创建的单个分片。 在创建索引和分配分片之前,Elasticsearch是否检查群集中存在的节点总数(在我的情况下,在创建索引 B 时我没有指定任何分片数,所以我期待我的索引总共创建了4个分片。你可以帮帮我吗?

1 个答案:

答案 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的“全局”/静态配置文件,如果更改它,它将不会影响当前正在运行的实例。