簡體   English   中英

如何快速重新索引ElasticSearch?

[英]How to reindex ElasticSearch quickly?

我有一個ElasticSearch索引,包含大約200M文檔,總索引大小為90Gb。

我改變了映射,所以我希望ElasticSearch重新索引所有文檔。

我編寫了一個創建新索引(使用新映射)的腳本,然后遍歷舊索引中的所有文檔,然后將其放入新索引中。

它似乎有效,但問題是它的工作速度非常慢。 它開始於兩天前的300個文件/分鍾,現在速度是150個文件/分鍾。

該腳本在彈性搜索機器所在的同一網絡中的機器上運行。

有了這樣的速度,重新索引需要一個月才能完成。

有人知道一些更快的技術來重新索引彈性搜索索引嗎?

在谷歌群組中回答:

選項A:使用批量索引操作。

選項B:使用在ES機器內運行的重新索引插件: https//github.com/karussell/elasticsearch-reindex

如何使用Elasticsearch重新索引的正確方法是使用scanscroll API,Pyes應該支持這些API。

似乎Pyes庫有一個reindex方法,但我沒有經驗。

(如果你過度使用Ruby over Python :), Tire Ruby客戶端有一個Index#reindex方法: https//github.com/karmi/tire/blob/master/test/integration/reindex_test.rb 它應該足夠快速的數據。)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM