批量增删改"_bulk"
除了delete以外,每个操作需要两个json字符串,语法如下:
{"action":{"metadata"}}
{"data"}
bulk api对json字符串的语法有严格的要求,每个json串不能换行,只能放在一行,同时json串和json串之间必须有一个换行
有哪些类型的操作可以执行?
1、delete:删除一个文档
2、create:PUT /index/type/id/_ceate,强制创建
3、index:普通的put操作,可以是创建文档,也可以是全量替换文档
4、update:partial update操作
----------------------------------------------------------------------------------------------------
1、不同index的操作
POST /_bulk
{"delete":{"_index":"test_index1","_type":"test_type","_id":1}}
{"create":{"_index":"test_index2","_type":"test_type","_id":1}}
{"test_field":"test field create"}
{"index":{"_index":"test_index3","_type":"test_type","_id":1}}
{"test_field":"test field index"}
{"update":{"_index":"test_index4","_type":"test_type","_id":1,"_retry_on_conflict":3}}
{"doc":{"test_field":"test field update"}}
bulk操作中,任意一个操作失败不会影响其他的操作,但是在返回的结果集中,会告诉你异常的日志
2、相同index,不同type的操作
{"delete":{"_type":"test_type1","_id":1}}
{"create":{"_type":"test_type2","_id":1}}
{"test_field":"test type ceate"}
{"index":{"_type":"test_type3","_id":1}}
{"test_field":"test type index"}
{"update":{"_type":"test_type4","_id":1,"_retry_on_conflict":3}}
{"doc":{"test_field":"test type update"}}
3、相同index、type,不同id的操作
{"delete":{"_id":1}}
{"ceate":{"_id":2}}
{"test_field":"test id create"}
{"index":{"_id":3}}
{"test_field":"test id index"}
{"update":{"_id":4,"_retry_on_conflict":3}}
{"doc":{"test_field":"test id update"}}
4、bulk size最佳大小
bulk request内容会加载到内存中,如果太大的话,性能反而会降低,因此需要反复尝试,得到一个最佳的bulk size
一般从1000条数据开始,逐渐成倍的增加。
如果看数据文件大小的话,最好是在5到15M之间。
批量增删改"_bulk"的更多相关文章
- Elasticsearch学习笔记(十)批量查询mget、批量增删改bulk
一.批量查询 mget GET /_mget { "docs":[ { "_index":" ...
- Elasticsearch由浅入深(六)批量操作:mget批量查询、bulk批量增删改、路由原理、增删改内部原理、document查询内部原理、bulk api的奇特json格式
mget批量查询 批量查询的好处就是一条一条的查询,比如说要查询100条数据,那么就要发送100次网络请求,这个开销还是很大的如果进行批量查询的话,查询100条数据,就只要发送1次网络请求,网络请求的 ...
- entity framework 5 批量增删改效率优化
对于数据的批量增删改最慢的就是操作一条就提交一次事务. 以下是对增删改操作的优化测试 同样的300条数据 批量新增只提交一次事务 用时:10673.5444ms 批量新增只提交一次事务并把contex ...
- OracleHelper(对增删改查分页查询操作进行了面向对象的封装,对批量增删改操作的事务封装)
公司的一个新项目使用ASP.NET MVC开发,经理让我写个OracleHelper,我从网上找了一个比较全的OracleHelper类,缺点是查询的时候返回DataSet,数据增删改要写很多代码(当 ...
- MYSQL冷知识——ON DUPLICATE KEY 批量增删改
一 有个需求要批量增删改,并且是混合的,也就是仅不存在才增. 删简单,因为有个deleteStaute之类的字段,删除本质上就是就是一个修改 所以就是实现批量混合增改,然而组长说mysql不支持混合增 ...
- MyBatis批量增删改查操作
前文我们介绍了MyBatis基本的增删该查操作,本文介绍批量的增删改查操作.前文地址:http://blog.csdn.net/mahoking/article/details/43673741 ...
- Jmeter对数据库批量增删改查
本文主要的内容是使用Jmeter对数据库进行数据的操作,包括单条语句的增删改查,多条语句的增删改查,本文主要介绍操作流程,关于流程的运作原理,对原理感兴趣的同学可自行查阅资料. 首先需要准备一个数据库 ...
- MyBatis批量增删改的另外一种思路(推荐)
零.传统拼接SQL语句的弊端 传统上利用Mybatis进行批量操作的方式本质来说是拼接SQL语句,然后交给底层执行,如之前博文而言. 其实这种方式是存在弊端的: 1. SQL语句可能会过长,DB的引擎 ...
- 关于mybatis中,批量增删改查以及參数传递的问题
1.參数传递的问题 大多数情况下,我们都是利用map作为參数,而且大部分情况下都是仅仅有一个參数. 可是,我们也能够利用@param注解,来传入多个參数,此时,mybatis会自己主动将參数封装成ma ...
随机推荐
- SAP项目的整体预算大概是多少?
例如一家规模包括(5-6个生产型子公司),员工5000人,市值100亿,销售额每年20亿左右的集团公司.上SAP,预算怎么算? 这其中:1)软件费用一般多少? 2)用户费用是怎么算的? 3)维护费用又 ...
- 5 -- Hibernate的基本用法 --5 1 持久化类的要求
1. 提供一个无参数的构造器:所有的持久化类都应该提供一个无参数的构造器,这个构造器可以不采用public访问控制符.只要提供了无参数的构造器,Hibernate就可以使用Constructor.n ...
- 升级 Centos 6.5/6.7 的 php 版本
Centos 6.5/6.7 的 php 预设是用 5.3.3 这个版本号 wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-releas ...
- [原]openstack-kilo--issue(十)ERROR: openstack Unable to establish connection to http://controller:35357/v3/auth/tokens
====环境== openstack :kilo CentOS : 7 ====问题=== 在没有关vm的情况下,重启了controller. 问题一: 在使用nova service-list 或者 ...
- MySQL 之 单表查询
一.简单查询 -- 创建表 DROP TABLE IF EXISTS `person`; CREATE TABLE `person` ( `id` int(11) NOT NULL AUTO_INCR ...
- day_5.19 py总结②
- Android开发-基本概念(申明:来源于网络)
Android开发-基本概念(申明:来源于网络) 地址:http://blog.csdn.net/iwanghang/article/details/53505926
- Redis 应该是存放的数据超出了范围
使用ServiceStack操作Redis 发生了 System.StackOverflowException HResult=0x800703E9 Source=<无法计算异常源> St ...
- poj2728 Desert King【最优比率生成树】【Prim】【0/1分数规划】
含[最小生成树Prim]模板. Prim复杂度为$O(n^2),适用于稠密图,特别是完全图的最小生成树的求解. Desert King Time Limit: 3000MS Memory Li ...
- TOP100summit:【分享实录-华为】微服务场景下的性能提升最佳实践
本篇文章内容来自2016年TOP100summit华为架构部资深架构师王启军的案例分享.编辑:Cynthia 王启军:华为架构部资深架构师.负责华为的云化.微服务架构推进落地,前后参与了华为手机祥云4 ...