迁移到 8.16

编辑

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

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

即将推出 8.16.0。

重大更改

编辑

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

分析更改

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

详情
synonymsynonym_graph 令牌过滤器配置为 updateable: true 时,默认的 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 函数

详情
从 ESQL 中移除一个未记录的语法:META 函数。这从未可靠过,也从未真正有用过。请改用文档。

影响
从 ESQL 中移除一个未记录的语法:META 函数

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 添加弃用警告

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

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

弃用范围查询中的旧参数

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

影响
请改用 gtgteltlte 参数。