我有一个只包含一个节点的集群。我已经创建了一个具有默认碎片大小的索引elasticsearch.yml A(即在文件中,index.number_of_shards: 1的值)。当我列出我的所有碎片时,我可以看到索引A的单个碎片。之后,我在elasticsearch.yml中更改了index.number_of_shards: 4的值,然后创建了另一个索引B。同样,当我列出集群中的所有碎片时,我只能看到为索引B创建的单个碎片,而不是4个碎片。在创建索引和分配碎片之前,弹性搜索是否检查集群中存在的节点总数(在我的示例中,我在创建索引B时没有指定任何碎片,因此我期望为我的索引总共创建4个碎片)。你能帮我做这个吗?
发布于 2017-02-23 07:23:47
elasticsearch.yml上的索引配置被废弃,而倾向于在索引设置/映射上传递此配置。
因此,您必须做的是从elasticsearch.yml文件中删除索引配置,并使用索引设置或模板传递它们。来自弹性医生:
curl -XPUT 'http://localhost:9200/twitter/' -d '{
"settings" : {
"index" : {
"number_of_shards" : 3,
"number_of_replicas" : 2
}
}使用这种方法,您可以为每个索引创建不同的配置。
注意: elasticsearch.yml是elasticsearch的“全局”/静态配置文件,在启动期间读取,如果您更改它,它不会影响当前运行的实例。
发布于 2017-02-23 18:53:36
在创建索引和分配碎片之前,弹性搜索是否检查集群中存在的节点总数
不是的。它将很高兴地为同一节点上的同一索引创建多个碎片。很可能在更改elasticsearch.yml之后没有重新启动ES。它不是实时读取的,因此对它的任何更改都需要重新启动才能生效。
https://stackoverflow.com/questions/42408281
复制相似问题