elasticsearch6 学习之批量操作
环境:elasticsearch6.1.2 kibana6.1.2
一、mget批量查询
mget可以将多个请求才能获的数据,合并到一个请求中以节省网络开销。
1、查询同一个索引下,通一个类型,不同id的数据
GET /book_index/book_type/_mget
{
"docs" : [
{
"_id" : 1
},
{
"_id" : 2
}
]
}
更简单的方式:
GET /book_index/book_type/_mget
{
"ids":[1,2]
}
2、查询不同索引,不同类型的数据
GET /_mget
{
"docs" : [
{
"_index":"test_index",
"_type":"test_type",
"_id" : 1
},
{
"_index":"book_index",
"_type":"book_type",
"_id" : 1
}
]
}
二、bulk 批量添加、修改、删除操作
1、bulk api对json的语法,有严格的要求,每个json串不能换行,只能放一行,同时一个json串和一个json串之间,必须有一个换行
2、bulk操作中,任意一个操作失败,是不会影响其他的操作的,但是在返回结果里,会告诉你异常日志
3、bulk request会加载到内存里,如果太大的话,性能反而会下降,因此需要反复尝试一个最佳的bulk,size。一般从1000~5000条数据开始,尝试逐渐增加。另外,如果看大小的话,最好是在5~15MB之间。
1、bulk批量添加
POST /_bulk
{"create":{"_index":"book_index","_type":"book_type","_id":4}} //create 添加操作
{"name":"book4","author":"ADC"}
{"create":{"_index":"book_index","_type":"book_type","_id":5}} //create 添加操作
{"name":"book5","author":"ADC5"}
{"index":{"_index":"book_index","_type":"book_type","_id":4}} //index 该数据做的是全量替换操作
{"name":"book4","author":"update rep"}
2、bulk批量修改
POST /_bulk
{"update":{"_index":"book_index","_type":"book_type","_id":6}}
{"doc":{"name":"book666","author":"update rep6666"}}
{"update":{"_index":"book_index","_type":"book_type","_id":7}}
{"doc":{"name":"book77"}}
该方式做的是partial update 指定修改内容修改。
3、bulk批量删除
POST /_bulk
{"delete":{"_index":"book_index","_type":"book_type","_id":6}}
{"delete":{"_index":"book_index","_type":"book_type","_id":7}}
elasticsearch6 学习之批量操作的更多相关文章
- ElasticSearch6学习(1)-安装Elasticsearch
安装准备: 安装Elasticsearch唯一的要求是安装Java8,包括对应的Jdk.其他java9/java10没尝试,考虑兼容问题.我这里只用了java8 安装java8可以参考我之前写的一篇文 ...
- elasticsearch6 学习之安装
安装环境:centos6.5 64位 jdk1.8 elasticsearch6.1.1 一.启动 [root@localhost bin]# ./elasticsearch - ...
- elasticsearch6 学习之并发控制
环境:elasticsearch6.1.2 kibana6.1.2 并发问题无处不在 一.基于_version 的并发控制 在提交数据前先检查提交数据的version与es中存储的ve ...
- elasticsearch6 学习之基础CURD
环境:elasticsearch6.1.2 kibana6.1.2 基础概念: 1._index元数据 (1)代表一个document存放在哪个index中(2)类似的数据放在一个索引 ...
- elasticsearch6 学习之数据分片
ES: ElasticSearch(简称ES):是一个基于Lucene构建的开源.分布式.RESTful的全文本搜索引擎:它还是一个分布式实时文档存储,其中每个field均是被索引的数据且可被搜索:也 ...
- MyBatis学习总结_10_批量操作
一.mybatis中的批量操作 批量操作核心就是一次传入多个数据然后进行相关操作,增删改查中掌握其中一个其他的也不成问题 1.最新在做的短信平台,要批量插入群发的短信记录: 当然批量操作还有:批 ...
- StackExchange.Redis学习笔记(四) 事务控制和Batch批量操作
Redis事物 Redis命令实现事务 Redis的事物包含在multi和exec(执行)或者discard(回滚)命令中 和sql事务不同的是,Redis调用Exec只是将所有的命令变成一个单元一起 ...
- ELK学习总结(2-4)bulk 批量操作-实现多个文档的创建、索引、更新和删除
bulk 批量操作-实现多个文档的创建.索引.更新和删除 ----------------------------------------------------------------------- ...
- MyBatis学习总结(10)——批量操作
一.mybatis中的批量操作 批量操作核心就是一次传入多个数据然后进行相关操作,增删改查中掌握其中一个其他的也不成问题 1.最新在做的短信平台,要批量插入群发的短信记录: 当然批量操作还有:批 ...
随机推荐
- PHP学习笔记之interface关键字
interface用于定义接口 接口里边的方法不需要有方法的实现 implements用于表示类实现某个接口 实现了某个接口之后,必须提供接口中定义的方法的具体实现. 可以用instanceof关键字 ...
- jsp+servlet+javabean开发web项目
一.介绍: 项目依赖包:jdbc数据库包 jsp+servlet+javabean开发web项目,是最接近web项目原生运行原理的. 但是,jsp内容混乱,项目结构复杂时,代码会混乱 二.运行原理: ...
- Python socket网络模块
一.基于TCP协议的socket通信 以打电话为理解方式进行TCP的通信. Server端代码: import socket phone = socket.socket(socket.AF_INET, ...
- OpenStack入门篇(一)之云计算的概念
1.云计算 云计算是一种按使用量付费的模式,这种模式提供可用的.便捷的.按需的网络访问, 进入可配置的计算资源共享池(资源包括网络,服务器,存储,应用软件,服务),这些资源能够被快速提供,只需投入很少 ...
- kettle 将job等导入导出成xml
一.导出 工具->资源库->探索资源库 就可以看见资源库里面的资源了. 如果要导出资源库里面的某个目录就右键就行了. 如果要导出全部资源库的文件就如下图所示 将资源库导出其实也是一个xml ...
- Cocoa Touch提供了哪几种Core Animation过渡类型?
过渡动画通过 type 设置不同的动画效果, CATransition 有多种过渡效果, 但其实 Apple 官方的SDK只提供了四种: fade 淡出 默认 moveIn 覆盖原图 push 推出 ...
- 搜索引擎ElasticSearch系列(二): ElasticSearch2.4.4 Head插件安装
一:ElasticSearch Head插件简介 elasticsearch-head is a web front end for browsing and interacting with an ...
- java 多路分发
1.概念 一个函数处理多种类型,其实和多态差不多. 但是要处理两种或者多种类型的数据时,就需要判断每种类型以及每种类型所对应的处理.(PS:我只是在走别人的老路,网上一搜这种概念,博客一大堆,我不知道 ...
- katalon系列十五:给浏览器添加cookie自动登陆
import org.openqa.selenium.Cookieimport org.openqa.selenium.WebDriverimport com.kms.katalon.core.web ...
- zabbix搭建并结合mikoomi插件监控hadoop集群
一.环境说明 系统: CentOS release 6.4 mysql 5.1.67 Apache/2.2.25 二.安装php 由于zabbix提供的frontends是php编写的,因此需要搭建l ...