迁移到 8.5

编辑

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

另请参见 8.16 新特性发行说明

重大更改

编辑

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

REST API 更改

编辑
批量 API 现在会拒绝包含无法识别的操作的请求

详情
对批量 API 的请求包含一系列项目,每个项目都以描述该项目的 JSON 对象开头。此对象包括要对项目执行的操作类型,该类型应为 createupdateindexdelete 之一。早期版本的 Elasticsearch 存在一个错误,导致它们忽略类型无法识别的项目,跳过请求中的下一行,但这种宽松的行为意味着客户端无法将响应中的项目与请求中的项目关联起来,并且在某些情况下会导致错误地解析请求的其余部分。

从 8.5 版本开始,对批量 API 的请求必须仅包含具有已识别类型的项目。Elasticsearch 将使用 400 Bad Request 错误响应拒绝包含任何具有无法识别类型的项目的请求。

我们认为此更改是错误修复,但将其列为重大更改,因为它可能会影响依赖于能够向 Elasticsearch 发送无法识别操作的应用程序的行为。

影响
确保您的应用程序仅向批量 API 发送类型为 createupdateindexdelete 的项目。

已弃用功能

编辑

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

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

插件 API 已弃用功能

编辑

扩展 NetworkPlugin 接口的插件已弃用。

详情

详情
插件可能会覆盖控制节点如何通过 TCP/IP 与其他节点连接的功能。这些插件扩展了 NetworkPlugin 接口。在下一个主要版本中,这些插件将无法安装。

影响
停止使用任何扩展 NetworkPlugin 的插件。您可以通过检查 Elasticsearch 弃用日志来查看是否有任何插件使用已弃用的功能。

扩展 DiscoveryPlugin 以覆盖连接验证器或选举策略已弃用

详情
扩展 DiscoveryPlugin 的插件可能会覆盖 getJoinValidator 和 getElectionStrategies。这些方法是 Elasticsearch 中集群机制的实现细节。不应覆盖它们。在下一个主要版本中,覆盖 getJoinValidator 或 getElectionStrategies 的插件将无法安装。

影响
停止使用任何在 DiscoveryPlugin 中覆盖 getJoinValidator 或 getElectionStrategies 的插件。您可以通过检查 Elasticsearch 弃用日志来查看是否有任何插件使用已弃用的功能。