【问题标题】:Elasticsearch reindex from 2.x to 5.xElasticsearch 重新索引从 2.x 到 5.x
【发布时间】:2018-07-08 05:04:51
【问题描述】:

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

我有一个脚本可以在 elasticsearch 上创建我需要的所有数据。我必须启动这个脚本吗?但在这种情况下,就像我将删除所有索引并将所有转储安装回弹性搜索一样。

我不知道如何尝试,因为我不知道“正确的方法”。

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

【问题讨论】:

  • 您的具体编程问题是什么?
  • 我没有具体的编程问题。我只想知道“重新索引”的具体含义。我仍然不确定我的理解是否正确:创建新索引,导入分析器和映射,使用 _reindex API 从一个索引到另一个索引的 _reindex。这是正确的吗?
  • 在这种情况下,您需要超级用户 stackexchange。这是编程之一。 superuser.com/tour
  • @G_V 非常感谢 :-)

标签: elasticsearch elasticsearch-5 reindex


【解决方案1】:

首先,为什么这是必要的: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 迁移助手,以确保您已升级所有索引并且没有任何其他隐藏的升级问题。

【讨论】:

  • 已经解决了。答案有点晚了,但还是谢谢你:-)
猜你喜欢
  • 1970-01-01
  • 2017-03-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-07
  • 2021-05-02
  • 2017-06-21
  • 2017-04-04
相关资源
最近更新 更多