从旧版 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 映射 API 检查旧版映射,并可以使用更新映射 API 手动设置更新后的映射,复制和调整旧版映射的相关部分以与当前 Elasticsearch 版本一起使用。虽然在大多数情况下预计自动导入可以工作,但如果自动导入失败,应向 Elastic 团队提出,以便在将来进行改进。

支持的 API

编辑

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

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

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

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

编辑

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

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