首页 > 解决方案 > Elasticsearch版本升级及索引是否需要重新索引

问题描述

我们正在使用托管在 AWS ElasticSearch 服务上的 Elasticsearch 5.6 并使用 Rails searchkick gem (v2.5)。我们计划在某个时候迁移到 Elasticsearch 7 和 searchkick v4 以利用拆分索引功能。

我正在检查是否需要重建整个索引,这对我们来说并不难,可能需要一天时间。

在这里:https ://www.elastic.co/guide/en/elasticsearch/reference/current/setup-upgrade.html 这是我在这个文档页面上看到的一些相互矛盾的信息:

" Elasticsearch 通常可以使用滚动升级过程进行升级,因此升级不会中断服务。支持滚动升级: • 次要版本之间

• 从 5.6 到 6.8

• 从 6.8 到 7.3.2"

...

“Elasticsearch 可以读取在之前的主要版本中创建的索引。如果您有在 5.x 或之前创建的索引,则必须在升级到 7.3.2 之前重新索引或删除它们。”

如果可以进行从 5.6 到 6.8 和从 6.8 到 7.3.2 的滚动升级,并且 elasticsearch 可以读取在以前的主要版本中创建的索引,那么您必须从 5.x 重新索引到 7.3.2 的下一条语句是真的吗?

标签: elasticsearchsearchkick

解决方案


不。

我推荐这个解决方案:

首先,您应该构建一个新的并行 7.3 集群。然后“远程重新索引”数据从 5.6 到 7.3。 https://www.elastic.co/guide/en/elasticsearch/reference/current/reindex-upgrade-remote.html

另一个解决方案:

您可以滚动升级到 6.5,然后将索引从 5.6 重新索引到 6.5。在那一刻,您有两个选择:

  1. 滚动升级到 7.3 并使用 6.5 索引(Lucene 7)并错过了一些新的 Lucene 8 功能。
  2. 滚动升级到 7.3 并再次“重新索引”从 6.5 到 7.3(Lucene 8)的索引。with 意味着您重新索引数据两次。

推荐阅读