You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring项目中Elasticsearch更新查询已废弃,如何改用新API?

解决Spring Data Elasticsearch更新文档的废弃警告问题

问题说明

使用Spring Data Elasticsearch更新文档时,现有代码触发了Elasticsearch类型移除的废弃警告,原代码调用的是带文档类型的旧端点/{index}/_doc/{id}/_update,需要切换到官方推荐的新端点/{index}/_update/{id}。

修改方案

在Spring Data Elasticsearch 4.x版本(对应你的4.3.4版本)中,替换原有的UpdateQuery.builder()构建方式,改用专门的静态工厂方法UpdateQuery.updateById()来构建更新查询,即可自动适配新的无类型端点。

修改后的代码

UpdateQuery.updateById(it)
    .withDocument(document)
    .build();

原理说明

  • 原代码使用UpdateQuery.builder(it)时,底层会默认带上_doc文档类型参数,这是Elasticsearch 7.x版本中已废弃的设计(7.x开始逐步移除文档类型概念)。
  • UpdateQuery.updateById(id)是Spring Data Elasticsearch为适配Elasticsearch新API提供的方法,构建的查询会直接调用/{index}/_update/{id}端点,不再包含文档类型参数,彻底消除废弃警告。

版本适配验证

你的依赖版本组合(Spring Boot 2.6.7 + Spring Data Elasticsearch 4.3.4 + Elasticsearch 7.15.2)完全兼容该修改:

  • Spring Data Elasticsearch 4.x系列原生适配Elasticsearch 7.x的无类型API规范
  • updateById方法在4.3.4版本中属于稳定可用的标准API

内容的提问来源于stack exchange,提问作者Ryan Kang

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.02 08:40:48