迁移到 8.5

edit

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

参见 9.0 的新特性发行说明

重大变更

edit

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

REST API 变更

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

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

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

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

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

弃用

edit

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

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

插件API弃用

edit

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

详情

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

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

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

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

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