Elasticsearch 更改主分片数

Posted

技术标签:

【中文标题】Elasticsearch 更改主分片数【英文标题】:Elasticsearch change primary shards number 【发布时间】:2020-10-12 05:46:48 【问题描述】:

我有 3 个节点的弹性搜索集群,我有索引 1 个主分片和 1 个副本分片 所以我想使用这种方法https://www.elastic.co/guide/en/elasticsearch/reference/7.9/indices-split-index.html将主分片号从1更改为2,但在文档中说

The number of primary shards in the target index must be a multiple of the number of primary shards in the source index

但在我的情况下 1 * 1 = 1 那么如何正确地将 1 个主分片调整为 2 个主分片?

【问题讨论】:

【参考方案1】:

elasticsearch 中不允许增量重新分片。所以,如果你想将主分片的数量从 1 个增加到 2 个是不可能的。但是,您有两种选择来实现此目标:

使用此 API 将索引拆分为 4,然后使用此 API link 将其收缩为具有 2 个主分片的索引 使用两个主分片创建一个新索引,并使用此 API link 将您的数据重新索引到该索引。

我建议你第二个选项。

【讨论】:

但在讨论中说 2 是 1 的倍数,所以没关系。由于您正在拆分分片,因此它们都需要以相同的方式进行拆分。您可以将单个分片拆分为 2、3 或 4 个等分片,但可以例如不要从 2 到 3 或从 2 到 5。 我可以看到讨论的链接吗?也许他们在谈论您安装的不同版本的弹性搜索。 确定discuss.elastic.co/t/elasticsearch-change-primary-shards-number/… 是的,你是对的。但是响应显示了其他内容。我建议你使用reindex。您创建一个包含两个分片的索引,并将您的数据reindex 放入该索引中。之后,您可以删除您的第一个索引。您还可以为新索引设置别名以使用第一个索引的名称。 谢谢我的伊朗朋友!我很高兴将来访问伊朗

以上是关于Elasticsearch 更改主分片数的主要内容,如果未能解决你的问题,请参考以下文章

Elastic Search 的原理

5.elasticsearch-分片

ElasticSearch面试

关键概念理解---未完待续

分布式任务elastic-job分片获取fetchdata时候怎么控制数据不重复

禁用分配的单个副本的意外 ElasticSearch 分片分配