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

如何通过Elasticsearch Bulk API批量删除跨多索引的文档?

Elasticsearch Bulk API 跨多索引删除文档实现方法

Bulk API 原生支持单次请求操作多个索引下的文档,不存在仅支持单索引删除的限制,之前遇到的单索引限制,本质是请求写法绑定了单索引路径导致的,具体实现方式如下:

  • 首先选择无索引绑定的全局Bulk端点发起请求,即请求路径使用POST /_bulk,不要使用POST /{单索引名}/_bulk这类绑定了单个索引的端点。
  • 在请求体的每一条删除操作的元数据中,单独为当前待删除文档声明所属的_index和对应的_id,不同索引的文档可以混排在同一个Bulk请求里,不需要按索引分组。

请求示例

POST /_bulk
Content-Type: application/x-ndjson

{ "delete" : { "_index" : "index1", "_id" : "1001" } }
{ "delete" : { "_index" : "index2", "_id" : "2003" } }
{ "delete" : { "_index" : "index1", "_id" : "1005" } }
{ "delete" : { "_index" : "index2", "_id" : "2007" } }

注意事项

  • 你也可以在请求路径上拼接多索引作为默认索引,格式为POST /index1,index2/_bulk,这种写法下如果某条操作没有显式指定_index,会在路径声明的索引范围内执行操作。生产环境建议每一条操作都显式指定_index,避免默认路由导致的误操作。
  • Bulk API的删除操作是按文档_id精准删除,需要提前获取每个待删文档的所属索引和文档ID;如果需要按查询匹配规则跨索引批量删除文档,还是需要使用delete_by_query API。
  • Bulk请求体必须使用NDJSON格式,每一行是一条完整的操作元数据或文档内容,行与行之间不能存在空行,否则会触发格式解析错误。

内容的提问来源于stack exchange,提问作者mohit jain

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.30 01:03:18