2017-07-29 43 views
0

几个月前我启动了ElasticSearch实例,但我高估了一个平均碎片的大小。我的碎片现在相当小,现在最大为400mb。我发现推荐的尺寸应该是约。 50GB(基于一个计算器搜索)。我也跑出了最大的碎片计数,我不得不重新配置它。但正确的做法是改变碎片的逻辑并基​​本上使碎片变大。对我来说这是完全可行的,但问题是如何处理已有的碎片。我当然可以重放数据,但这需要很长时间。那么如何将更小的碎片合并成大碎片还有更好的方法吗?如何在ElasticSearch中合并碎片

+1

你好,你有几个选择。 [缩小API](https://www.elastic.co/guide/en/elasticsearch/reference/current/indices-shrink-index.html)就是@moliware提到的其中之一。您还可以尝试使用[_reindex API](https://www.elastic.co/guide/en/elasticsearch/reference/current/docs-reindex.html)合并索引并限制碎片数量。您可以查看[这里](https://stackoverflow.com/questions/46153683/elasticsearch-how-to-merge-indexes-into-one-index/47054501#47054501)的例子如何限制指数 –

回答

1

据我所知,你不能在运行中合并碎片。这曾经是您必须重新索引数据的情况之一。 Elasticsearch现在提供了一种使这种情况不那么痛苦的方法。 Shrink API允许您创建一个新索引,其主分片数量是源索引主分片数量的一个因子。例如,如果索引有12个碎片,缩小索引可以有6,4,2,1个主碎片。

我希望它有帮助!