ES _bulk 批量操作用法

news2025/6/17 18:37:39

es 的 bulk 操作,是用来批量发送请求,或者理解为批量操作的。

支持4种操作

bulk 支持多种操作,如下createindexupdatedelete

  • create 如果文档不存在就创建,但如果文档存在就返回错误
  • index 如果文档不存在就创建,如果文档存在就更新
  • update 更新一个文档,如果文档不存在就返回错误
  • delete 删除一个文档,如果要删除的文档id不存在,就返回错误
语法结构

语法结构上,一个操作分为两部分,一部分指定操作类型和索引,另一部分是请求体;


针对不同的操作类型,第二行的请求体是不一样的
(1)index 和 create 第二行是source数据体
(2)delete 没有第二行
(3)update 第二行可以是partial doc,upsert或者是script

示例

POST /_bulk
{"create":{"_index":"索引名", "_id":"文档"}} // 动作
{"field1":"value1"} //请求体
  1. 批量执行两个动作

POST /_bulk
{"create":{"_index":"zm_blog5"}}
{"name":"小刘","desc":{"simple":"山西人","complete":"山西人,定居太原","other":"程序员"}}
{"create":{"_index":"zm_blog5"}}
{"name":"小刘","desc":{"simple":"山西人","complete":"山西人,定居太原","other":"程序员"}}

POST zm_blog5/_bulk
{"create":{}}
{"name":"小刘","desc":{"simple":"山西人","complete":"山西人,定居太原","other":"程序员"}}
{"create":{}}
{"name":"小刘","desc":{"simple":"山西人","complete":"山西人,定居太原","other":"程序员"}}

执行返回结果

执行结果是分开的,比如发送2个操作,两个操作结果分别返回,可能其中一个失败另一个成功

比如执行:

POST /_bulk
{"create":{"_index":"zm_blog5"}}
{"name":"小刘","desc":{"simple":"山西人","complete":"山西人,定居太原","other":"程序员"}}
{"create":{"_index":"zm_blog5"}}
{"name":"小刘","desc":{"simple":"山西人","complete":"山西人,定居太原","other":"程序员"}}

返回结果:
每个返回结果中有 http status,以及其他详细信息。

{
  "took" : 8,
  "errors" : false,
  "items" : [
    {
      "create" : {
        "_index" : "zm_blog5",
        "_type" : "_doc",
        "_id" : "wKNBpYQBCuglFCwN_ObP",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
          "total" : 1,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 1,
        "_primary_term" : 1,
        "status" : 201  
      }
    },
    {
      "create" : {
        "_index" : "zm_blog5",
        "_type" : "_doc",
        "_id" : "waNBpYQBCuglFCwN_ObP",
        "_version" : 1,
        "result" : "created",
        "_shards" : {
          "total" : 1,
          "successful" : 1,
          "failed" : 0
        },
        "_seq_no" : 2,
        "_primary_term" : 1,
        "status" : 201
      }
    }
  ]
}



作者:zhimin_
链接:https://www.jianshu.com/p/60a792037f8c
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1087174.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

敏捷开发流程图Scrum

敏捷开发中的Scrum流程通常可以用一个简单的流程图来表示,以便更清晰地展示Scrum框架的各个阶段和活动。以下是一个常见的Scrum流程图示例: 转自:Leangoo.com 免费敏捷工具 这个流程图涵盖了Scrum框架的主要阶段和活动,其中包括&…

ABAP 采购组 条目 Z001 不存在T161内-请检查输入

背景:在ALV报表更改PR采购组 做法:ALV报表取出PR相关数据,直接将采购组列设置为可编辑,然后设置按钮更改逻辑。 操作:将采购组值更新(从原来500改为600),然后点更改功能按钮&#xf…

VMware Horizon 8 运维系列(四)云桌面虚拟机被移除网卡

前言 最近发现有一台云桌面虚拟机经常网卡莫名其妙就被删除了,从而造成网络中断,客户端无法连接到该虚拟机桌面,经过分析判断可能是由于用户在使用u盘的时候,误删了虚拟网卡设备造成的。 问题描述: 故障现象:客户机无法访问云桌面虚拟机: 查看桌面池列表,发现该虚拟机…

C++指针解读(1)-- 什么是指针

变量的内存地址叫指针,存放指针的变量叫指针变量。估计不少人会混淆这2个概念,而且有的书籍资料把“指针变量”称为“指针”。 1、数据的存储方式 程序中的数据都会占用一块内存空间,不同数据类型占用的内存大小不同。比如char、bool是1个字…

树上启发式合并:xor1

https://vjudge.net/contest/587311#problem/C 最近没打这个套路,场上忘了 发现和一堆lca什么的有关,然后又是lca下不同的儿子,考虑树上启发式合并。 对于 i ⊕ j i\oplus j i⊕j,我们可以拆位枚举 然后常数大会被卡常。但树上…

AndroidStudio模拟器使用rootAVD ROOT(失败)

下载rootAVD $ git clone https://github.com/newbit1/rootAVD.git 下载Magist Releases topjohnwu/Magisk GitHub 改名为Magist.zip,然后替换 察看设备 > .\rootAVD.bat ListAllAVDsrootAVD.bat system-images\android-31\google_apis_playstore\x86_64…

数据库系统概念学习2

对空值和布尔值的聚集 嵌套子查询 子查询是嵌套在另一个查询中的 select-from-where 表达式 集合成员资格 连接词 in 测试元组是否是集合中的成员,连接词 not in 测试元组是否不是集合中的成员 ↑ 找出在 2009 年球季和 2010 年春季学期同时开课的所有课程 ↓ 找…

docker安装sql-server数据库,使用navicat实现备份数据库导入

docker安装sql-server,使用navicat实现备份数据库导入 1、docker安装sql-server数据库2、使用navicat连接sql-server3、使用navicat导入备份数据库1、第一步:选择需要备份的数据源2、第二步 (选择备份计划,设置还原文件位置信息&a…

云计算到底牛x在哪里?

你们好,我的网工朋友。 云计算已经霸屏行业有段时间了,但很多粉丝朋友还是不太明白什么是云计算,为什么要学云计算。 从宏观来说,其实云计算的优点很多。 就和传统模式相比,云计算在六个维度都有显著的提升点。 比…

git主干master分支回滚到历史版本(不会有错误的提交记录)

master版本,“合并错了”的回滚步骤: (这样做不会有“合并错了”的提交记录) 注意:操作前先对master拉一个分支出来,做备份; 1. 在gitLab的上一次合并记录,复制commit-id ​ 2. 在本地执行检出master版本,执行 git re…

阿里云价格计算器入口(一键计算精准报价)

阿里云服务器价格计算器,鼠标选择云服务器ECS实例规格、地域、系统盘、带宽及购买时长即可一键计算出精准报价,阿里云百科aliyunbaike.com分享阿里云服务器价格计算器链接地址: 阿里云服务器价格计算器 先打开阿里云服务器ECS页面 aliyunba…

浅析倾斜摄影三维模型(3D)几何坐标精度偏差的几个因素

浅析倾斜摄影三维模型(3D)几何坐标精度偏差的几个因素 倾斜摄影是一种通过倾斜角度较大的相机拍摄建筑物、地形等场景,从而生成高精度的三维模型的技术。然而,在进行倾斜摄影操作时,由于多种因素的影响,导致…

Godot自动寻路功能讲解-使用C#语言(2D游戏导航教程)

文章目录 创建导航NavigationAgent2D节点设置目标位置其他文章 创建导航 首先,创建一个基本的场景,下面的文章讲解了如何创建一个基本的导航场景,点击如下链接前往该文章: Godot2D角色导航-自动寻路教程 NavigationAgent2D节点 …

Vue封装组件并发布到npm仓库

前言 使用Vue框架进行开发,组件封装是一个很常规的操作。一个封装好的组件可以在项目的任意地方使用,甚至我们可以直接从npm仓库下载别人封装好的组件来进行使用,比如iview、element-ui这一类的组件库。但是每个公司的业务场景可能不同&…

Matlab论文插图绘制模板第119期—分组气泡图

在之前的文章中,分享了很多Matlab气泡图的绘制模板: 进一步,再来分享一种特殊的气泡图:分组气泡图。 先来看一下成品效果: 特别提示:本期内容『数据代码』已上传资源群中,加群的朋友请自行下载…

护眼台灯是智商税吗?书客、飞利浦、南卡三款台灯真实测评

护眼台灯本身并不是智商税,但是有些品牌或者商家可能会利用消费者对护眼产品的需求来进行夸大宣传或者高价销售,让消费者在不了解产品的情况下盲目购买,从而产生了智商税的嫌疑。因此,在购买护眼台灯时,消费者应该理性…

二.镜头知识之镜头总长,法兰距,安装接口

二.镜头知识之镜头总长,法兰距,安装接口 文章目录 二.镜头知识之镜头总长,法兰距,安装接口2.1 线激光模组镜头的FBL 与 TTL(Total Track Length) 镜头总长2.2 相机法兰距2.3 线激光模组镜头的TTL 以及 From Barrel bottom to imag…

ipad手写笔哪个好用?苹果平替笔性价比高的

如果你想要入手一款和iPad匹配的电容笔,想必你的第一想法就是苹果的原装电容笔。然而这款电容笔虽然很好用,但价格会相对的昂贵一些。而平替电容笔,却是一种不错的选择,而且价格也很合理。一支普通的平板电容笔,其售价…

Android笔记(六):JetPack Compose常见的UI组件

一、文本组件 1.1Text Column(modifier Modifier.fillMaxSize().background(Color.Green).padding(10.dp)){Text(text stringResource(id R.string.title_content),modifier Modifier.fillMaxWidth().border(BorderStroke(1.dp, Color.White)),fontSize 20.sp,textAlign …

【Overload游戏引擎细节分析】从视图投影矩阵提取视锥体及overload对视锥体的封装

overoad代码中包含一段有意思的代码,可以从视图投影矩阵逆推出摄像机的视锥体,本文来分析一下原理 一、平面的方程 视锥体是用平面来表示的,所以先看看平面的数学表达。 平面方程可以由其法线N(A, B, C)和一个点Q(x0,…