迁移到 8.16
编辑迁移到 8.16
编辑本节讨论在将您的应用程序迁移到 Elasticsearch 8.16 时需要注意的更改。
另请参阅 8.17 中的新增功能 和 发行说明。
在 8.16.0 中发布。
重大更改
编辑Elasticsearch 8.16 中的以下更改可能会影响您的应用程序并阻止它们正常运行。在升级到 8.16 之前,请检查这些更改并采取所述步骤来减轻影响。
分析更改
编辑使用可更新的同义词时,默认将 lenient 设置为 true
详情
当使用 updateable: true
配置 synonym
或 synonym_graph
词元过滤器时,默认的 lenient
值现在将为 true
。
影响
配置为 updateable: true
的 synonym
或 synonym_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) 中,我们对检索器框架及其评估方式进行了重大更改,主要侧重于诸如 rrf
和 text_similarity_reranker
之类的复合检索器,这使我们能够支持完全可组合性(即,任何检索器都可以嵌套在任何复合检索器下),并支持其他搜索功能,如折叠、解释、聚合和突出显示。
为了确保一致性,并且考虑到此重构在 8.16 之前不可用,在混合集群场景中,rrf
和 text_similarity_reranker
检索器查询现在会抛出异常,其中节点同时位于当前版本或更高版本(即 >= 8.16)和先前版本(<= 8.15)中。
作为重构的一部分,我们还从 rrf
检索器的响应中删除了 _rank
属性。
影响
- 用户将无法在具有先前版本(即 8.16 之前)的混合集群场景中使用 rrf
和 text_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 弃用
编辑弃用点前缀索引和可组合模板索引模式
详情
以点
影响
执行会创建以点开头的索引(索引文档、手动创建、重新索引)的操作或创建具有以点开头的索引模式的索引模板的请求,将在响应中包含有关点前缀索引的弃用头警告。
REST API 弃用
编辑为使用 rank 和 sub_searches
的 rrf 添加弃用警告
详情
Search API 参数 sub_searches
将不再受支持,并将在未来版本中删除。同样,rrf
只能通过指定的 retriever
使用,而不能再通过 rank
参数使用
影响
在未来版本中,将不允许通过 rank
和/或 sub_searches
元素指定 rrf 的请求。用户应改为使用新的 retriever
参数。
弃用 range 查询中的旧参数
详情
Range 查询将不再接受 to
、from
、include_lower
和 include_upper
参数。
影响
请改为使用 gt
、gte
、lt
和 lte
参数。