迁移到 8.15

编辑

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

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

即将在 8.15.0 中推出。

重大更改

编辑

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

集群和节点设置更改

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

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

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

汇总更改

编辑
不允许在没有汇总用法的集群中创建新的汇总作业

详情
当在没有汇总用法的集群中创建汇总作业时,put rollup API 将失败并显示错误

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

REST API 更改

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

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

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

在 GET 推理 API 中用 inference_id 替换 model_id

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

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

弃用

编辑

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

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

集群和节点设置弃用

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

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

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

REST API 弃用

编辑
弃用 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 的访问权限。将在未来的主要版本中从 SLM 权限中删除对 ILM API 的访问权限,并且现在已弃用。

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