繁体   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