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

时间:2014-04-20 22:25:51

标签: elasticsearch sharding

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

我想购买更多机器并将内容分成更多碎片。我怎么能这样做?

只是将新节点连接到群集并更新master中的分片号?

2 个答案:

答案 0 :(得分:1)

Afaik elasticsearch尚无法自动重新分发索引文档(see here)。您必须重新索引所有内容。其背后的问题是,根据散列值模数分片将文档分发到分片。只需添加分片并保持索引,就可以继续将文档添加到旧分片中。

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

结论:向现有索引添加分片需要重新索引所有内容或重度黑客攻击。

答案 1 :(得分:1)

您已经有3个分片,因此如果您添加2个节点,Elasticsearch会自动将2个分片重新分配给其他2个节点,从而为所有分片提供3倍的功率。

如果要添加更多分片,则需要重新索引数据。这可以通过创建具有所需分片数的新索引并将数据复制到该索引来完成(参见https://www.elastic.co/guide/en/elasticsearch/guide/current/reindex.html