如何添加新的碎片和拆分索引内容



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

我想买更多的机器,把内容分成更多的碎片。我该怎么做?

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

Afaik elasticsearch还不能自动重新分发索引文档(请参阅此处)。您必须重新索引所有内容。其背后的问题是,文档是根据哈希值模分片数量分布到分片的。只要添加碎片并保持索引,就可以将文档添加到旧的碎片中。

Elasticsearch允许根据自定义函数(路由参数)分发文档。您可以将所有新内容分发到新的碎片,但这会使删除变得困难,因为现在您必须知道文档是"旧的"还是"新的"。此外,它会破坏你的统一指数统计数据,这可能会以非显而易见的方式对排名产生偏见。

一句话:将碎片添加到现有索引需要重新索引所有内容或进行一些严重的黑客攻击。

您已经有3个碎片,因此如果添加2个节点,Elasticsearch将自动将2个碎片重新分配给其他2个节点。这将使所有碎片的功率增加3倍。

如果你想添加更多的碎片,你需要重新索引你的数据。这可以通过创建一个具有所需碎片数量的新索引并将数据复制到该索引来实现(请参阅https://www.elastic.co/guide/en/elasticsearch/guide/current/reindex.html)

最新更新