06-Elasticsearch-批量操作 bulk
批量操作 bulk
基本语法
bulk操作和以往的普通请求格式有区别, 不要格式化JSON, 不然就不在同一行了, 这个需要注意
{action:{metadata}}
代表批量操作的类型, 可以是新增, 删除, 修改\n
是每行结尾必须填写的一个规范, 每一行包括最后一行都要写, 用于ES 解析(不要写出来,就是回车换行){request body}
是请求body, 增加和修改操作需要, 删除操作则不需要
批量操作的类型
action必须是一下选项之一:
- create:如果文档不存在,那么就创建它。存在会报错。发生异常报错不会影响其他操作。
- index:创建一个新文档或者替换一个现有文档。
- update:部分更新一个文档。
- delete:删除一个文档。
metadata中需要指定要操作的文档的_index、_type和_id,_index、_type也可以在url中指定。
样例
批量新增记录
POST /_bulk { "create":{ "_index":"shop2", "_id":"2005" } } { "id":"2005", "nickname":"name-2005" } { "create":{ "_index":"shop2","_id":"2006" } } { "id":"2006", "nickname":"name-2006" } { "create":{ "_index":"shop2", "_id":"2007" } } { "id":"2007", "nickname":"name-2007" }
简写
POST /shop2/_bulk { "create":{"_id":"2008" } } { "id":"2008", "nickname":"name-2008" } { "create":{"_id":"2009" } } { "id":"2009", "nickname":"name-2009" } { "create":{"_id":"20011" } } { "id":"2011", "nickname":"name-20011" }
批量新增/替换
POST /shop2/_bulk { "index":{"_id":"2008" } } { "id":"2008", "nickname":"name-2008" } { "index":{"_id":"2009" } } { "id":"2009", "nickname":"name-2009" } { "index":{"_id":"20011" } } { "id":"2010", "nickname":"name-20010" }
批量修改
POST /shop2/_bulk { "update":{"_id":"2008" } } { "doc":{"id":"1", "nickname":"name-1"} } { "update":{"_id":"2009" } } { "doc":{"id":"2", "nickname":"name-2"} }
批量删除
POST /shop2/_bulk { "delete":{"_id":"2008" } } { "delete":{"_id":"2009" } }
批量的操作可以结合使用
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南