Elasticsearch从2.x重新索引到5.x

时间:2018-01-29 13:24:46

标签: elasticsearch elasticsearch-5 reindex

我将elasticsearch-2.x的弹性搜索实例升级为elasticearch-5.6。一切似乎都很好。但在我升级到版本6之前,我必须重新索引数据。重组索引是什么意思?

我有一个脚本正在创建弹性搜索所需的所有数据。我必须开始这个脚本吗?但在这种情况下,它会像删除所有索引并将所有转储安装回elasticsearch一样。

我不知道如何尝试这个,因为我不知道"正确的方式"这样做。

修改 我现在用_reindex帖子找到了api。我是否必须为我拥有的所有索引执行此操作,或者是否有应用程序我不知道这样做可能比我更快: - )

1 个答案:

答案 0 :(得分:0)

首先,为什么这是必要的:在幕后,Apache Lucene正在编写数据。 Lucene总能编写当前版本并阅读上一版本。

  • Elasticsearch 2.x == Lucene 5
  • Elasticsearch 5.x == Lucene 6
  • Elasticsearch 6.x == Lucene 7

如果您已从2.x升级,则需要确保所有数据都已使用Lucene 6编写,然后才能升级到Elasticsearch 6.x.您可以使用GET /_segments在所有Lucene细分中的version信息中进行检查(这可能会为您提供大量信息)。

要完成此任务的目的是reindex in place。我强烈推荐免费的X-Pack Basic迁移助手,以确保您升级了所有索引,并且没有任何其他隐藏的升级问题。