ElasticSearch文档批量操作[ES系列] - 第503篇

news2024/11/16 3:14:31

历史文章(文章累计500+)

《国内最全的Spring Boot系列之一》

《国内最全的Spring Boot系列之二》

《国内最全的Spring Boot系列之三》

《国内最全的Spring Boot系列之四》

《国内最全的Spring Boot系列之五》

《国内最全的Spring Boot系列之六》

《国内最全的Spring Boot系列之七》

ElasticSearch扫盲概念篇[ES系列] - 第500篇

ElasticSearch重建/创建/删除索引操作 - 第501篇

ElasticSearch文档操作[ES系列] - 第502篇

导读

Hi,大家好,我是悟纤。我就是我,不一样的烟火。我就是我,与众不同的小苹果。

这一节来看看ES的文档批量操作 – 增删改查。

一、文档批量操作

批量操作可以减少网络连接所产生的开销,提升性能

· 支持在一次API调用中,对不同的索引进行操作

· 可以在URI中指定Index,也可以在请求的Payload中进行

· 操作中单条操作失败,并不会影响其他操作

· 返回结果包括了每一条操作执行的结果

1.1 批量写入

批量对文档进行写操作是通过_bulk的API来实现的

· 请求方式:POST

· 请求地址:_bulk

· 请求参数:通过_bulk操作文档,一般至少有两行参数(或偶数行参数)

o    第一行参数为指定操作的类型及操作的对象(index,type和id)

o    第二行参数才是操作的数据

参数类似于:

{"actionName":{"_index":"indexName", "_type":"typeName","_id":"id"}}{"field1":"value1", "field2":"value2"}

- actionName:表示操作类型,主要有create,index,delete和update

1.2批量创建文档create

POST _bulk{"create":{"_index":"article","_id":3}}{"id":3,"title":"fox老师","content":"老师666","tags":["java", "面向对象"],"create_time":1554015482530}{"create":{"_index":"article", "_id":4}}{"id":4,"title":"mark老师","content":"老师NB","tags":["java", "面向对象"],"create_time":1554015482530}

1.3普通创建或全量替换index

POST _bulk{"index":{"_index":"article", "_id":3}}{"id":3,"title":"张三老师","content":"老师888","tags":["java", "面向对象"],"create_time":1554015482530}{"index":{"_index":"article", "_id":4}}{"id":4,"title":"李四老师","content":"老师888","tags":["java", "面向对象"],"create_time":1554015482530}

· 如果原文档不存在,则是创建

· 如果原文档存在,则是替换(全量修改原文档)

1.4批量修改update

POST _bulk{"update":{"_index":"article",  "_id":3}}{"doc":{"title":"ES从入门到放弃"}}{"update":{"_index":"article", "_id":4}}{"doc":{"create_time":1654018421008}}

1.5批量删除delete

POST _bulk{"delete":{"_index":"article",  "_id":3}}{"delete":{"_index":"article",  "_id":4}}

1.6组合应用

POST _bulk{"index":{"_index":"article", "_id":3}}{"id":3,"title":"悟空老师","content":"悟空老师666","tags":["java", "面向对象"],"create_time":1554015482530}{"delete":{"_index":"article",  "_id":3}}{"update":{"_index":"article", "_id":4}}{"doc":{"create_time":1654018421008}}

1.7批量读取

es的批量查询可以使用mget和msearch两种。其中mget是需要我们知道它的id,可以指定不同的index,也可以指定返回值source。msearch可以通过字段查询来进行一个批量的查找。

1.7.1 _mget

GET _mget{  "docs": [    {      "_index": "es_db",      "_id": 1    },    {      "_index": "article",      "_id": 4    }  ]}#可以通过ID批量获取es_db的数据GET /es_db/_mget{  "docs": [    {      "_id": 1    },    {      "_id": 4    }  ]}#简化后GET /es_db/_mget{  "ids":["1", "2"]}

1.7.2 _msearch

在_msearch中,请求格式和bulk类似。查询一条数据需要两个对象,第一个设置index和type,第二个设置查询语句。查询语句和search相同。如果只是查询一个index,我们可以在url中带上index,这样,如果查该index可以直接用空对象表示。

GET /es_db/_msearch{}{"query" : {"match_all" : {}}, "from" : 0, "size" : 2}{"index" : "article"}{"query" : {"match_all" : {}}}

我就是我,是颜色不一样的烟火。
我就是我,是与众不同的小苹果。

à悟纤学院:https://t.cn/Rg3fKJD

学院中有Spring Boot相关的课程!点击「阅读原文」进行查看!

SpringBoot视频:http://t.cn/A6ZagYTi

SpringBoot交流平台:https://t.cn/R3QDhU0

SpringSecurity5.0视频:http://t.cn/A6ZadMBe

ShardingJDBC分库分表:http://t.cn/A6ZarrqS

分布式事务解决方案:http://t.cn/A6ZaBnIr

JVM内存模型调优实战:http://t.cn/A6wWMVqG

Spring入门到精通:https://t.cn/A6bFcDh4

大话设计模式之爱你:https://dwz.cn/wqO0MAy7

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

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

相关文章

超声波清洗机怎么选?过来人推荐四大表现突出的宝藏眼镜清洗机!

如果你清洁眼镜的时候总是习惯用纸巾或者是衣服擦的话,我劝你要赶紧把这个坏习惯给改掉!很多不知道原因的朋友会问,为什么不能用纸巾擦眼镜?其实是因为纸巾还有衣服布料上,存在一些比较粗糙的微粒,人体手部…

车载测试 HIL测试详解

HIL测试:即硬件在环测试,是一种广泛应用于汽车电子控制系统领域的测试方法。它将实际的硬件(如ECU、传感器、执行器等)与模拟器件(如模型、仿真器等)通过接口连接起来,模拟实际的操作环境&#…

动态规划-----最长公共子序列(及其衍生问题)

目录 一.最长公共子序列的基本概念: 解决动态规划问题的一般思路(三大步骤): 二.最长公共子序列题目: 三.字符串的删除操作: 四.最小 ASCII 删除和: 一.最长公共子序列的基本概念&#xff…

微前端——qiankun

一、微前端 微前端是指存在于浏览器中的微服务,其借鉴了后端微服务的架构理念,将微服务的概念扩展到前端。即将一个大型的前端应用拆分为成多个模块,每个微前端模块可以有不同的团队开发并进行管理,且可以自主选择框架&#xff0…

seata测试demo(订单)

seata工作流程: seata对分布式事务的协调和控制就是31 1>XID:XID是全局事务的唯一标识,它可以在服务的调用链路中传递,绑定到服务的事务上下文中。 3>TC->TM->RM TC:事务协调器>就是seata 负责维护全局事务和分支事务的状…

选项式API和组合式API的区别

选项式(options) API 和组合式(composition) API两种不同的风格书写,Vue3 的组件可以使用这两种api来编写。 选项式API和组合式API的区别 选项式API 选项式 API,具有相同功能的放在一起,可以用包含多个选项的对象来描述组件的逻辑&…

【周总结】

周总结 完成项目混合版时区改造 完成相关jira问题的修改 完成老版本APP数据保存接口的兼容,手动赋值时区 2024/03/24 天气阴 一点不冷 1.Its time to go、Spring is coming! 2. Its a nice day that staying with friends in a peaceful …

初探Ruby编程语言

文章目录 引言一、Ruby简史二、Ruby特性三、安装Ruby四、命令行执行Ruby五、Ruby的编程模型六、案例演示结语 引言 大家好,今天我们将一起探索一门历史悠久、充满魅力的编程语言——Ruby。Ruby是由松本行弘(Yukihiro Matsumoto)于1993年发明…

LangChain核心模块 Retrieval——文档加载器

Retrieval ​ 许多LLM申请需要用户的特定数据,这些数据不属于模型训练集的一部分,实现这一目标的主要方法是RAG(检索增强生成),在这个过程中,将检索外部数据,然后在执行生成步骤时将其传递给LLM。 ​ LangChain 提供…

Linux系统安装openGauss结合内网穿透实现公网访问本地数据库管理系统——“cpolar内网穿透”

文章目录 前言1. Linux 安装 openGauss2. Linux 安装cpolar3. 创建openGauss主节点端口号公网地址4. 远程连接openGauss5. 固定连接TCP公网地址6. 固定地址连接测试 前言 openGauss是一款开源关系型数据库管理系统,采用木兰宽松许可证v2发行。openGauss内核深度融合…

力扣:205. 同构字符串

前言:剑指offer刷题系列 问题: 给定两个字符串 s 和 t ,判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t ,那么这两个字符串是同构的。 每个出现的字符都应当映射到另一个字符,同时不改变字符…

Linux快速入门,上手开发 02.VMware的安装部署

倘若穷途末路,那便势如破竹 —— 24.3.21 一、VMware的作用 在Windows或IOS系统下,给本地电脑安装VMware虚拟机,用来在虚拟机上安装Linux系统,避免重复资源的浪费,可以在虚拟机上搭建Linux系统进行学习 二、VMware的安…

分布式数据库TiDB介绍及基本原理

1.概述: 1.1 标准SQL、noSQL、newSQL的区别: SQL(Structured Query Language):数据库,指传统的关系型数据库。缺点是面对大量的数据时,他的性能会随着数据库的增大而急剧下降。主要代表:SQL Server、Orac…

Data.olllo:轻松统计分类总数!

介绍: Data.olllo是您数据处理的得力助手,拥有众多强大的功能,其中之一便是“分类总数”功能。这个功能能够帮助您快速准确地统计某一列中不同分类的总数,无论是分类为A、B、C,还是其他自定义分类,都能轻松…

进行信创符合性检测是什么意思?

验收文件中,要求“进行信创符合性检测”,这些检测包括什么内容,需要提供什么证明材料? 这个问题相对复杂一些。首先,我们需要了解什么是“信创符合性”。大家都清楚,信创行业发展,是关系到国家…

无需敲代码,10s一个网页

无需掌握前端三剑客的知识&#xff0c;10s种做出下图的效果。 <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0">&…

群晖NAS使用docker安装容器魔方结合内网穿透实现公网访问

文章目录 1. 拉取容器魔方镜像2. 运行容器魔方3. 本地访问容器魔方4. 群辉安装Cpolar5. 配置容器魔方远程地址6. 远程访问测试7. 固定公网地址 本文主要介绍如何在群辉7.2版本中使用Docker安装容器魔方&#xff0c;并结合Cpolar内网穿透工具实现远程访问本地网心云容器魔方界面…

Redis入门到实战-第八弹

Redis实战热身Sorted sets篇 完整命令参考官网 官网地址 声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准 https://redis.io/Redis概述 Redis是一个开源的&#xff08;采用BSD许可证&#xff09;&#xff0c;用作数据库、缓存、消息代…

React Native 应用打包上架

引言 在将React Native应用上架至App Store时&#xff0c;除了通常的上架流程外&#xff0c;还需考虑一些额外的优化策略。本文将介绍如何通过配置App Transport Security、Release Scheme和启动屏优化技巧来提升React Native应用的上架质量和用户体验。 配置 App Transport…

CV论文--2024.3.25

1、Zero-Shot Multi-Object Shape Completion 中文标题&#xff1a;零样本多对象形状完成 简介&#xff1a;我们提出了一种3D形状补全方法&#xff0c;可以从单个RGB-D图像中恢复复杂场景中多个物体的完整几何形状。尽管单个物体的3D形状补全已经取得了显著进展&#xff0c;但…