elasticsearch - 如何添加新分片和拆分索引内容

标签 elasticsearch sharding

所以我的索引增长太快,现在在 3 个分片(单节点)中有 6000 万个文档。

我想购买更多的机器并将内容拆分成更多的碎片。我该怎么做?

它只是将新节点连接到集群并更新 master 中的分片数量吗?

最佳答案

Afaik elasticsearch 还不能自动重新分发索引文档 (see here)。您将不得不重新索引所有内容。其背后的问题是,文档是根据哈希值对分片数取模分布到分片上的。仅添加分片并保持索引也会继续向旧分片添加文档。

Elasticsearch 允许根据自定义函数(路由参数)分发文档。您可以将所有新内容分发到新分片,但这会使删除变得困难,因为现在您必须知道文档是“旧”还是"new"。此外,它会破坏您的统一索引统计信息,这可能会以不明显的方式影响排名。

底线:将分片添加到现有索引需要重新索引所有内容或进行一些繁重的黑客攻击。

关于elasticsearch - 如何添加新分片和拆分索引内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188287/

相关文章:

mysql - Logstash Grok 过滤 mysql 慢查询

MySQL Partitioning/Sharding/Splitting - 走哪条路?

mysql - 使用 LIKE 进行搜索的大型 MySQL 表的分区

linux - 为什么分片需要很多存储空间?

elasticsearch - Elasticsearch 更新随机失败,总计= 0成功= 0失败= 0

Elasticsearch 版本最低兼容性字段

elasticsearch - elasticsearch中特殊字符的处理

elasticsearch - Elasticsearch-聚合和存储桶大小

java - 了解 Akka 集群分片

Azure:更多 DTU 还是更多分片?