从旧版 Elasticsearch 版本读取索引

edit

从旧版 Elasticsearch 版本读取索引

edit

Elasticsearch 完全支持在前一个主要版本中创建的索引的查询和写入。如果你有在 Elasticsearch 版本 5 或 6 中创建的索引,你现在也可以使用归档功能将它们导入到更新的 Elasticsearch 版本中。

归档功能为旧的 Elasticsearch 数据提供较慢的只读访问,出于合规或监管原因、偶尔的回溯或调查,或重新激活部分数据。对数据的访问预计不频繁,因此可以以有限的性能和查询能力进行。

为此,Elasticsearch 具有访问旧快照存储库的能力(可追溯到版本 5)。快照存储库中的旧索引可以还原,或者可以通过可搜索快照直接访问,以便存档的数据甚至不需要完全驻留在本地磁盘上即可访问。

支持的字段类型

edit

旧的映射尽可能“原样”导入到 Elasticsearch 8 中,但仅在选定的字段子集上提供常规查询功能:

  • 数字类型
  • 布尔类型
  • IP类型
  • 地理点类型
  • 日期类型: 日期字段上的格式设置在这些版本中支持,只要它在这些版本中表现相似。如果它不相似,例如使用自定义日期格式时,可以在旧索引上更新此字段,以便在需要时由用户更改。
  • 关键字类型: 关键字字段上的规范化器设置在这些版本中支持,只要它在这些版本中表现相似。如果它不相似,可以在旧索引上更新此字段,以便在需要时进行更改。
  • 文本类型: 评分能力有限,所有查询返回的常量分数等于1.0。文本字段上的分析器设置在这些版本中支持,只要它们在这些版本中表现相似。如果它们不相似,可以在旧索引上更新它们,以便在需要时进行更改。
  • 多字段
  • 字段别名
  • 对象字段
  • 一些基本元数据字段,例如用于查询Elasticsearch 5索引的_type
  • 运行时字段
  • _source字段

具有多种映射类型的Elasticsearch 5索引在导入之前会尽力合并在一起。

如果映射的自动导入不起作用,或者新版本的 Elasticsearch 无法理解该映射,它将回退到导入没有映射的索引,但会将原始映射存储在导入索引的 _meta 部分中。然后可以使用 GET mapping API 检查旧映射,并使用 update mapping API 手动更新映射,复制并调整旧映射的相关部分以适应当前的 Elasticsearch 版本。虽然自动导入预计在大多数情况下都能正常工作,但如果失败,应向 Elastic 团队提出以供未来改进。

支持的API

edit

归档索引是只读的,并通过搜索字段能力 API 提供数据访问。 它们不支持获取 API也不支持任何写入 API。

归档索引允许运行查询以及聚合,只要它们是由给定字段类型支持的

由于 _source 访问,数据也可以被 重新索引 到与当前 Elasticsearch 版本完全兼容的新索引中。

如何升级旧的Elasticsearch 5或6集群?

edit

对旧集群中的索引进行快照,删除ES 8不直接支持的索引(即7.0之前的索引),在不包含旧索引的情况下升级集群,然后从快照中恢复旧索引或通过可搜索快照挂载它们。

在未来,我们计划简化升级过程,使其更容易在升级到未来的主要Elasticsearch版本时携带旧索引。