迁移到 8.15

edit

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

参见 9.0 的新特性发行说明

将于8.15.0版本中推出。

重大变更

edit

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

集群和节点设置变更

edit
skip_unavailable远程集群设置的默认值更改为true

详情
skip_unavailable 设置的默认值现在设置为 true。所有现有和未来的远程集群如果没有定义此设置,将使用新的默认值。此设置仅影响使用 _search 或 _async_search API 的跨集群搜索。

影响
在跨集群搜索中,不可用的远程集群将不再导致搜索失败,除非在elasticsearch.yml中或通过_cluster/settings API将skip_unavailable配置为false。对于skip_unavailable=true(无论是显式设置还是使用新默认值)的不可用集群,在搜索响应的元数据部分中标记为SKIPPED,并且不会导致整个搜索失败。如果用户希望确保在特定远程集群不可用时搜索返回失败,则必须显式设置skip_unavailable

汇总变更

edit
禁止在没有汇总使用的集群中创建新的汇总作业

详情
在没有任何汇总使用的集群中创建汇总作业时,put rollup API 将会失败并返回错误

影响
没有使用汇总(既没有汇总任务也没有索引)的集群无法创建新的汇总任务

REST API 变更

edit
?timeout=-1解释为无限确认超时

详情
今天 Elasticsearch 在许多 API 中接受参数 ?timeout=-1,但将其解释为与 ?timeout=0 相同。从 8.15 开始,?timeout=-1 将意味着无限期等待,使此参数的行为与其他类似参数(如 ?master_timeout)保持一致。

影响
使用 ?timeout=0 强制相关操作立即超时 而不是 ?timeout=-1

在GET推理API中将model_id替换为inference_id

详情
从8.15开始,获取推理API响应将返回一个inference_id字段,而不是model_id

影响
如果您的应用程序在GET推理API响应中使用了model_id,请将其切换为使用inference_id

弃用

edit

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

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

集群和节点设置弃用

edit
弃用indices.breaker.total.limit设置的绝对大小值

详情
以前,可以将 indices.breaker.total.limit 的值指定为以字节为单位的绝对大小。此设置控制服务器在采取补救措施之前允许使用的内存总量。将此设置为特定字节数会导致在节点最大堆大小变化时出现奇怪的行为,因为断路器限制将保持不变。这要么会使值过低,导致部分堆未被使用;要么会使值过高,导致断路器在防止OOM错误方面无效。此设置的唯一合理行为是它应随堆大小缩放,因此现在已弃用绝对字节限制。

影响
用户必须更改其配置,以指定百分比而不是indices.breaker.total.limit的绝对字节数,否则将接受默认值,该默认值已指定为百分比。

REST API 弃用

edit
弃用 text_expansionweighted_tokens 查询

详情
text_expansionweighted_tokens 查询已被 sparse_vector 取代。

影响
请更新您现有的 text_expansionweighted_tokens 查询以使用 sparse_vector

弃用使用slm权限访问ilm

详情
read_slm 权限可以获取 ILM 状态,而 manage_slm 权限可以启动和停止 ILM。应使用 read_ilmmanage_ilm 权限来授予对这些 API 的访问权限。在未来主要版本中,对 ILM API 的访问将从 SLM 权限中移除,并且现在已被弃用。

影响
需要访问ILM状态API的用户现在应使用read_ilm权限。需要启动和停止ILM的用户应使用manage_ilm权限。