迁移到 8.5编辑

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

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

重大更改编辑

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

REST API 更改编辑

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

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

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

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

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

弃用编辑

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

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

插件 API 弃用编辑

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

详细信息

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

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

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

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

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