Elasticsearch-批量操作(bulk)
- bulk的基础概念
bulk是es提供的一种批量增删改的操作API。 - bulk的语法
bulk对JSON串的有着严格的要求。每个JSON串不能换行,只能放在同一行,同时,相邻的JSON串之间必须要有换行(Linux下是\n;Window下是\r\n)。bulk的每个操作必须要一对JSON串(delete语法除外)。
POST /_bulk
{ "action": { "metadata" }}\n
{ "data" }\n
{ "action": { "metadata" }}\n
{ "data" }\n
...
eg: 新增11,修改3 删除5
POST /_bulk
{"create": {"_index": "test_index", "_id": 11}}\n
{"test_field": "test_bulk", "counter":"100"}\n
{"update": {"_index": "test_index", "_id": 3}}\n
{"doc": {"test_field": "bulk test"}}\n
{"delete": {"_index": "test_index", "_id": 5}}
bulk的操作类型
create 如果文档不存在就创建,但如果文档存在就返回错误
update 更新一个文档,如果文档不存在就返回错误
delete 删除一个文档,如果要删除的文档id不存在,就返回错误
某一个操作失败,是不会影响其他文档的操作的,它会在返回结果中告诉你失败的详细的原因
bulk这样书写的好处:
- bulk中的每个操作都可能要转发到不同的node的shard去执行
- 直接按照换行切割json
- 对每两个一组的json,渠道meta,进行document路由
- 直接将对应的json发送到node上
分类:
Elasticsearch
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧