迁移到 8.16

编辑

本节讨论在将您的应用程序迁移到 Elasticsearch 8.16 时需要注意的更改。

另请参阅 8.17 中的新增功能发行说明

在 8.16.0 中发布。

重大更改

编辑

Elasticsearch 8.16 中的以下更改可能会影响您的应用程序并阻止它们正常运行。在升级到 8.16 之前,请检查这些更改并采取所述步骤来减轻影响。

分析更改

编辑
使用可更新的同义词时,默认将 lenient 设置为 true

详情
当使用 updateable: true 配置 synonymsynonym_graph 词元过滤器时,默认的 lenient 值现在将为 true

影响
配置为 updateable: truesynonymsynonym_graph 词元过滤器默认将忽略无效的同义词。这可以防止在无效同义词上出现分片初始化错误。

映射更改

编辑
JDK 区域设置数据库更改

详情
Elasticsearch 8.16 将包含的 JDK 版本从 22 更改为 23。这会将 Elasticsearch 使用的区域设置数据库从 COMPAT 数据库更改为 CLDR 数据库。此更改可能会导致 Elasticsearch 接受的文本日期格式以及计算的周日期发生重大差异。

如果您在 JDK 版本 22 或更低版本上运行 Elasticsearch 8.16,它将使用 COMPAT 区域设置数据库来匹配 8.15 的行为。但是,从 Elasticsearch 9.0 开始,无论运行的 JDK 版本如何,Elasticsearch 都将使用 CLDR 数据库。

影响
如果您使用使用文本或周日期字段说明符的自定义日期格式,则此更改会影响您。如果您的日期字段或计算的周日期在 COMPAT 和 CLDR 数据库之间发生更改,则此更改将导致 Elasticsearch 拒绝之前有效的日期字段作为无效数据。您可能需要修改您的摄取或输出集成代码,以考虑这两个 JDK 版本之间的差异。

从 8.15.2 版本开始,如果您使用在升级到 JDK 23 时可能会更改的日期格式说明符,Elasticsearch 将记录弃用警告。这些警告在 Kibana 中可见。

有关详细指导,请参阅 JDK 版本之间区域设置信息的差异Elastic 博客

ES|QL 更改

编辑
ESQL:完全删除 META FUNCTIONS

详情
从 ESQL 中删除一个未记录的语法:META FUNCTION。它从未可靠或真正有用。请参阅文档。

影响
从 ESQL 中删除一个未记录的语法:META FUNCTION

REST API 更改

编辑
重构 RRF 检索器以在重写阶段进行评估

详情
在此版本 (8.16) 中,我们对检索器框架及其评估方式进行了重大更改,主要侧重于诸如 rrftext_similarity_reranker 之类的复合检索器,这使我们能够支持完全可组合性(即,任何检索器都可以嵌套在任何复合检索器下),并支持其他搜索功能,如折叠、解释、聚合和突出显示。

为了确保一致性,并且考虑到此重构在 8.16 之前不可用,在混合集群场景中,rrftext_similarity_reranker 检索器查询现在会抛出异常,其中节点同时位于当前版本或更高版本(即 >= 8.16)和先前版本(<= 8.15)中。

作为重构的一部分,我们还从 rrf 检索器的响应中删除了 _rank 属性。

影响
- 用户将无法在具有先前版本(即 8.16 之前)的混合集群场景中使用 rrftext_similarity_reranker 检索器,并且该请求将抛出 IllegalArgumentException。 - _rank 现在已从 rrf 检索器的输出中删除,因此尝试直接解析该字段将抛出异常

更新数据流生命周期遥测以跟踪全局保留

详情
在此版本中,我们引入了满足以下条件的全局保留设置

  • 由数据流生命周期管理的数据流,
  • 不是内部数据流的数据流。

因此,我们定义了不同类型的保留

  • 数据保留:由数据流用户或所有者在数据流级别配置的保留
  • 默认全局保留:由管理员在集群级别配置并应用于任何没有数据保留且满足条件的数据流的保留。
  • 最大全局保留:由管理员配置的保留,以防止出现长时间的保留期限。任何满足条件的数据流都将遵守数据保留,除非它超过最大保留期限,在这种情况下将应用最大全局保留期限。
  • 有效保留:在给定时间点应用于满足条件的数据流的保留。它考虑了以上所有保留,并将其解析为将生效的保留。

考虑到以上更改,在使用 API 中有一个名为 retention 的字段令人困惑。因此,我们将其重命名为 data_retention,并添加了有关其他配置的遥测信息。

影响
使用字段 data_lifecycle.retention 的用户应该使用 data_lifecycle.data_retention

弃用

编辑

以下功能已在 Elasticsearch 8.16 中弃用,并将在未来的版本中删除。虽然这不会对您的应用程序产生直接影响,但我们强烈建议您在升级到 8.16 后采取所述步骤来更新您的代码。

要了解您是否正在使用任何已弃用的功能,请启用 弃用日志记录

分析弃用

编辑
弃用 dutch_kp 和 lovins 词干分析器,因为它们已在 Lucene 10 中删除

详情
kp、dutch_kp、dutchKp 和 lovins 词干分析器已弃用,将被删除。

影响
这些词干分析器将被删除,并且不再支持。

弃用 edge_ngram side 参数

详情
edge_ngram 将不再接受 side 参数。

影响
用户将需要更新任何使用 side 的 edge_ngram 词元过滤器的用法。如果使用了 back 值,则可以通过使用 reverse 词元过滤器来实现相同的行为。

CRUD 弃用

编辑
弃用点前缀索引和可组合模板索引模式

详情
以点 . 开头的索引保留给系统和内部索引,不应由最终用户使用。此外,应避免使用包含点前缀索引模式的可组合索引模板,因为这些模式仅供内部使用。在未来的 Elasticsearch 版本中,将不再允许创建这些点前缀索引。

影响
执行会创建以点开头的索引(索引文档、手动创建、重新索引)的操作或创建具有以点开头的索引模式的索引模板的请求,将在响应中包含有关点前缀索引的弃用头警告。

REST API 弃用

编辑
为使用 rank 和 sub_searches 的 rrf 添加弃用警告

详情
Search API 参数 sub_searches 将不再受支持,并将在未来版本中删除。同样,rrf 只能通过指定的 retriever 使用,而不能再通过 rank 参数使用

影响
在未来版本中,将不允许通过 rank 和/或 sub_searches 元素指定 rrf 的请求。用户应改为使用新的 retriever 参数。

弃用 range 查询中的旧参数

详情
Range 查询将不再接受 tofrominclude_lowerinclude_upper 参数。

影响
请改为使用 gtgteltlte 参数。