2017-07-29 44 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個主碎片。

我希望它有幫助!