读取旧版本 Elasticsearch 的索引

编辑

读取旧版本 Elasticsearch 的索引

编辑

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

归档功能为较旧的 Elasticsearch 数据提供较慢的只读访问,以满足合规性或监管原因、偶尔的回溯或调查,或重新加载部分数据。对数据的访问预计不会频繁发生,因此可以在性能和查询能力有限的情况下进行。

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

支持的字段类型

编辑

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

  • 数值类型
  • boolean 类型
  • ip 类型
  • geo_point 类型
  • date 类型:只要日期字段上的 format 设置在这些版本中的行为相似,就支持该设置。如果不是这种情况,例如 当使用自定义日期格式时,可以在旧索引上更新此字段,以便用户在需要时更改它。
  • keyword 类型:只要关键字字段上的 normalizer 设置在这些版本中的行为相似,就支持该设置。如果不是这种情况,可以在旧索引上更新此字段,如果需要。
  • text 类型:评分功能有限,所有查询都返回等于 1.0 的常数分数。只要文本字段上的 analyzer 设置在这些版本中的行为相似,就支持该设置。如果它们不相似,可以在旧索引上更新它们,如果需要。
  • 多字段
  • 字段别名
  • object 字段
  • 一些基本元数据字段,例如用于查询 Elasticsearch 5 索引的 _type
  • 运行时字段
  • _source 字段

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

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

支持的 API

编辑

归档索引是只读的,并通过 searchfield capabilities API 提供数据访问。它们不支持 Get API 或任何写入 API。

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

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

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

编辑

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

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