elasticsearch的bulk(批量)操作

2023-11-02

    在es中我们可能会有这么一种需求,即有时需要批量向es中插入或更新或删除数据,如果一条一条数据的操作,那么速度必然很慢,那么es的bulk api就可以派上用场。

delete 删除操作,只需要写一个json即可
create 创建操作,如果需要创建的文档已经存在,那么创建失败
index 创建或替换操作,如果要创建的文档不存在则执行创建操作,如果已经存在则执行替换操作
update 更新操作  执行文档的更新


需求:
    1、使用create创建编号为21、22、23的文档
    2、使用create再次创建编号为22的文档,此时会失败,因为编号为22的文档已经存在
    3、使用index创建编号为24、25的文档
    4、使用index替换编号为25的文档
    5、修改编号为21的文档的数据
    6、删除编号为23的文档

curl -XPOST "http://192.168.99.1:9200/_bulk" -d'
{"create":{"_index":"productindex","_type":"product","_id":21}}
{"name":"21 name","price":21}
{"create":{"_index":"productindex","_type":"product","_id":22}}
{"name":"22 name","price":22}
{"create":{"_index":"productindex","_type":"product","_id":23}}
{"name":"23 name","price":23}
{"create":{"_index":"productindex","_type":"product","_id":22}}
{"name":"id为22的文档已经存在,创建失败","price":22}
{"index":{"_index":"productindex","_type":"product","_id":24}}
{"name":"文档不存在,被创建","price":24}
{"index":{"_index":"productindex","_type":"product","_id":25}}
{"name":"21 name","price":25}
{"index":{"_index":"productindex","_type":"product","_id":25}}
{"name":"由于编号为25的文档已经存在,执行替换操作,price字段的值没有了"}
{"update":{"_index":"productindex","_type":"product","_id":21}}
{"doc":{"name":"修改编号为21的文档的数据,price字段的值还在"}}
{"delete":{"_index":"productindex","_type":"product","_id":23}}
'

   执行结果,部分。
  
 

    批量执行完成之后,es会返回每个命令的执行的结果,其中一个命令报错,是不会影响其余的命令继续往下执行的。

    在批量执行api下,每个json串需要占据一行,不可将json字符串格式化,否则执行不了。

    bulk请求的请求体不建议太大,太大会影响性能。建议不要超过几十兆。如果出现索引队列不够用的时候,就需要调整threadpool.index.queue_size  的值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

elasticsearch的bulk(批量)操作 的相关文章

  • Elasticsearch批量设置_id

    当我使用 id 设置将文档添加到 elasticsearch 时 我得到 Field id is a metadata field and cannot be added inside a document Use the index AP
  • ElasticSearch:对聚合键进行排序,不区分大小写,并保持键的大小写

    我想从汽车中获得不同的制造值 并且制造值应该不区分大小写地按升序排序 我使用的是elasticsearch版本2 4 4 颜色和制作字段的映射 color type string fields keyword type string ind
  • Elasticsearch 对字符串排序未返回预期结果

    当对包含多个单词的字符串字段进行排序时 Elasticsearch 会拆分字符串值并使用最小值或最大值作为排序值 即 当对值为 老虎之眼 的字段进行升序排序时 排序值为 Eye 当按降序排序时 排序值为 Tiger 假设我的索引中有 老虎之
  • 将 Elasticsearch 结果导出到 CSV 文件

    我正在尝试将使用以下查询找到的结果导出到桌面上的 CSV 中 这是我第一次使用 Elasticsearch 和 cURL 所以我对如何做到这一点感到困惑 from elasticsearch import Elasticsearch es
  • Elasticsearch 崩溃后无法恢复

    磁盘空间不足 导致 Elasticsearch 分片崩溃 三个节点现在为红色 两个节点已恢复 它们的状态为黄色 ES 的 CPU 利用率为 150 内存利用率很高 正在尝试恢复它们 但似乎存在一些版本匹配冲突 我清理了磁盘空间并删除了分片的
  • 为什么我在elasticsearch中需要“store”:“yes”?

    我真的不明白为什么核心类型链接 http www elasticsearch org guide reference mapping core types 它在属性描述中说 例如 对于数字 store 设置为 yes 将实际字段存储在索引中
  • 在elasticsearch中过滤facet

    我有一个如下查询 query query query string query s q filter ids values list ids facets destination terms field destination en hot
  • match_none 有什么用?

    我浏览了docs https www elastic co guide en elasticsearch reference current query dsl match all query html query dsl match no
  • Logstash删除类型并保留_type

    我有一个logstash 客户端和服务器 客户端将带有logstash的udp输出的日志文件发送到服务器 服务器也运行logstash来获取这些日志 在服务器上 我有一个 json 过滤器 它会在实际日志的字段中提取 json 格式的消息
  • ElasticSearch 多滚动 Java API

    我想从索引中获取所有数据 由于项目数量对于内存来说太大 我使用滚动 很好的功能 client prepareSearch index setTypes myType setSearchType SearchType SCAN setScro
  • 如何使用 django-haystack 和 elasticsearch 后端进行模糊搜索?

    看起来好像elasticsearch支持模糊查询 http www elasticsearch org guide reference query dsl fuzzy query http www elasticsearch org gui
  • 在 Elastic 搜索中加载示例数据集时出错

    您好 我正在尝试加载示例数据集参考弹性搜索文档 https www elastic co guide en elasticsearch reference current exploring your data html但是当我尝试运行指示
  • 如何编写Elasticsearch多个必须脚本查询?

    我想使用查询来比较多个字段 我有字段 1 到 4 我想搜索字段 1 大于字段 2 的数据 并且下面的查询工作正常 size 0 source field1 field2 field3 field4 sort query bool filte
  • Nest Elastic - 构建动态嵌套查询

    我必须使用 Nest 查询嵌套对象 但是查询是以动态方式构建的 下面的代码演示了以静态方式对嵌套 书籍 进行查询 QueryContainer qry qry new QueryStringQuery DefaultField name D
  • search_after 在弹性搜索中如何工作?

    我一直在尝试在我们的应用程序中使用 Elasticsearch 但分页限制为 10k 对我们来说实际上是一个问题 并且由于必须超时问题 滚动 API 也不是推荐的选择 我发现 Elasticsearch 有一个叫做 search after
  • Elasticsearch 关于“空索引”的查询

    在我的应用程序中 我使用了几个elasticsearch索引 它们在初始状态下不包含索引文档 我认为这可以称为 空 该文档的映射是正确且有效的 该应用程序还有一个包含实体的关系数据库 这些实体可能具有在 elasticsearch 中关联的
  • 为 Logstash 中的新字段设置 Elasticsearch Analyzer

    通过使用GROK filter 我们可以向Logstash添加新字段 但是 我想知道如何为该特定字段设置分析器 例如 我有一个新的 id 字段 其中有一个字段 例如a b 但是 Elasticsearch 附带的普通分析器会将其分解为a a
  • Elasticsearch 通过 id 获取不起作用但文档存在

    我在 elasticsearch 1 2 0 最近从 1 0 1 升级 上看到 ids 的奇怪行为 搜索检索我的文档 显示 id 的正确值 终端 curl myServer 9200 global search q someField so
  • 如何使用scala获取elasticsearch中_delete_by_query api的状态

    我正在 scala 中向 elasticsearch 发送 HTTP post Http s http elkIp 5051 indexName delete by query postData s query terms zip id k
  • Elasticsearch:预期的字段名称,但得到了 START_OBJECT

    我一直在尝试运行以下查询 但每次运行时都会收到以下错误 nested ElasticsearchParseException Expected field name but got START OBJECT field value fact

随机推荐

  • ext系列文件系统的LVM逻辑卷管理(外加扩容操作)

    此处我们准备两张盘 一张 dev sdb 一张 dev sdc 两张的所有储存都放在一个池子里 我们需要有个流程 一 将这两张盘变成物理卷 这里我们要注意 我们是可以分完区再将分区变成物理卷 不建议 原因就是脱裤子放屁 我们看下一步就知道了
  • linux杀死进程方法总结

    方法一 Terminal终端输入 gnome system monitor 就可以打开system monitor 然后找到相应进程 右击选择kill process就可以了 方法二 通过kill 进程id的方式可以实现 首先需要知道进程i
  • IDEA中使用Jacoco统计单元测试的代码覆盖率

    一 使用IDEA自带的代码覆盖率工具 1 查看配置 因为都是默认的 所以不用修改 点击Edit Configurations 点击上方的设置图标用以修改整个Junit的配置 或者也可以点击具体的单元测试文件来修改该文件的配置 默认方式是In
  • 别丢了那个在乎你的人

    任何一段关系里 一个人心里有你 zui 直接 zui 纯粹的表现 就是在乎 比遇见一个合适的人更重要 更幸运的 便是遇见一个打从心底里在乎你的人 那个人 不一定非要财富无数 也不一定非得长相出众 但他一定会把你放在心尖儿上 你的喜怒哀乐 他
  • CSR867x — TWS模式音量调节的交互流程

    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XX 作 者 文化人 XX 联系方式 XX 版权声明 原创文章 欢迎评论和转载 转载时能告诉我一声就最好了 XX 要说的话 作者水
  • 【uni-app】 动态设置 tabBar

    uni setTabBarItem OBJECT 动态设置 tabBar 某一项的内容 不支持的平台有钉钉小程序 字节跳动小程序 setTabBar uni setTabBarItem index 0 title Home uni setT
  • SpringBoot常用配置類大全

    SpringBoot常用配置類大全 结合源码看注解 Target ElementType TYPE Retention RetentionPolicy RUNTIME Documented Inherited SpringBootConfi
  • Gradle添加依赖及使用注解(添加插件)

    一 基于Gradle可以构建很多项目 下面以Kotlin项目为例 package com reflections import sun management Agent author wangdong description 反射 定义一个
  • echarts图表宽度设置100%,结果echarts宽度只有100px,解决图表自适应宽度问题

    问题 我的echarts在tab选项卡中显示 为了自适应 用来渲染图表的div的宽度为100 但是charts渲染出来以后默认设置为了100px 原因 图表的父容器 li 是隐藏的 我默认设置 display none 图表在执行js初始化
  • Jmeter 课程笔记(一)两种录制脚本的方法:badboy和自设代理

    1 环境配置 配置Jmeter界面语言 bin目录下的jmeter properties 找到language改为zh CN 去掉注释并保存 操作的备份文件在backups目录下 用户手册目录 apache jmeter 4 0 print
  • np.load()读取npy文件

    在读取文件时 我们有时候会需要读取npy文件 有时候这样一个文件特别大读取起来非常慢 甚至有可能导致电脑卡死 所以这里记下一个笔记 在读取文件的时候只需要添加上读取方式 那么就会使用给定模式对文件进行内存映射 内存映射的矩阵保留在磁盘上 并
  • 华为OD机试 - 二叉树层序遍历(Java )

    题目描述 有一棵二叉树 每个节点由一个大写字母标识 最多26个节点 现有两组字母 分别表示后序遍历 左孩子 gt 右孩子 gt 父节点 和中序遍历 左孩子 gt 父节点 gt 右孩子 的结果 请你输出层序遍历的结果 输入描述 每个输入文件一
  • 吐血整理 python最全习题100道(含答案)持续更新题目,建议收藏!

    最近为了提升python水平 在网上找到了python习题 然后根据自己对于python的掌握 整理出来了答案 如果小伙伴们有更好的实现方式 可以下面留言大家一起讨论哦 已知一个字符串为 hello world yoyo 如何得到一个队列
  • 域名系统包含几类服务器,域名服务器可以划分为哪四种

    域名服务器可以划分为主域名服务器 辅助域名服务器 缓存域名服务器和转发域名服务器四种 主域名服务器的数据可以修改 辅助域名服务器的数据不可以修改 缓存域名服务器提供的信息都是间接信息 转发域名服务器负责所有非本地域名的本地查询 本文操作环境
  • 数字化转型的四大典型场景,TempoBI来支持

    当企业发展到一定规模的时候 如何进行业务管理 就变成了比业务增长更为棘手的首要难题 企业管理颗粒度越细致 越是重视对日常业务数据的梳理和分析 但这类企业 特别容易陷入到 表山表海 之中 小T之前就听过这样一个例子 有一家企业曾经试图推行 数
  • java base64转图片

    方法 传入文件路径和base64位的编码 base64转为图片 param path 文件路径 到文件夹即可 代码里会在文件夹里生成对应的jpg文件 param base64 return public static String base
  • c++面试常见问题汇总

    c 面试常见问题汇总 1 指针和引用的区别 2 堆栈的区别 3 new 和 delete 是如何实现的 与 malloc 和 free有什么异同 4 struct 和 class 的区别 5 define 和 const 的区别 6 在c
  • 【Java】下划线命名转驼峰命名,通过反射设置属性值

    在mybatis中进行对象关系映射时 肯定会用到的一个功能就是 对属性赋值 且还要满足下划线命名与驼峰命名的规范 在这里记录一下是如何实现的 下划线转驼峰 param name 属性名 return name 驼峰命名 public Str
  • c语言 整数拆分,C++ 整数拆分方法详解

    一 问题背景 整数拆分 指把一个整数分解成若干个整数的和 如 3 2 1 1 1 1 共2种拆分 我们认为2 1与1 2为同一种拆分 二 定义 在整数n的拆分中 最大的拆分数为m 我们记它的方案数为 f n m 即 n x1 x2 xk 1
  • elasticsearch的bulk(批量)操作

    在es中我们可能会有这么一种需求 即有时需要批量向es中插入或更新或删除数据 如果一条一条数据的操作 那么速度必然很慢 那么es的bulk api就可以派上用场 delete 删除操作 只需要写一个json即可 create 创建操作 如果