bulk允许在一个请求中进行多个操作(create、index、update、delete),也就是可以在一次请求裡做很多事情

也由于这个关系,因此bulk的请求体和其他请求的格式会有点不同

bulk的请求模板

分成action、metadata和doc三部份

action : 必须是以下4种选项之一

  index(最常用) : 如果文档不存在就创建他,如果文档存在就更新他

  create : 如果文档不存在就创建他,但如果文档存在就返回错误

  使用时一定要在metadata设置_id值,他才能去判断这个文档是否存在

  update : 更新一个文档,如果文档不存在就返回错误

  使用时也要给_id值,且后面文档的格式和其他人不一样

  delete : 删除一个文档,如果要删除的文档id不存在,就返回错误

使用时也必须在metadata中设置文档_id,且后面不能带一个doc,因为没意义,他是用_id去删除文档的

metadata : 设置这个文档的metadata,像是_id、_index、_type...

doc : 就是一般的文档格式

bulk 如果一次性数据过多,很容易导致超时

  1. elasticsearch.exceptions.ConnectionTimeout: ConnectionTimeout caused by - ReadTimeoutError(HTTPConnectionPool(host='192.168.0.92', port='9200'): Read timed out. (read timeout=10))

查看bulk 源码发现

  1. @query_params('_source', '_source_exclude', '_source_include', 'fields',
  2. 'pipeline', 'refresh', 'routing', 'timeout', 'wait_for_active_shards')
  3. def bulk(self, body, index=None, doc_type=None, params=None):

有个timeout参数,可以设置超时时间,默认是10s

bulk(es, actions, request_timeout=100)

ES bulk 批量操作的更多相关文章

  1. ELK学习总结(2-4)bulk 批量操作-实现多个文档的创建、索引、更新和删除

    bulk 批量操作-实现多个文档的创建.索引.更新和删除 ----------------------------------------------------------------------- ...

  2. kibana——es的批量操作

    一·_mget: 1.创建的索引如下: 2.批量查询: #查询两个 GET _mget { "docs":[ { "_index":"testdb&q ...

  3. 第三百六十三节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mget和bulk批量操作

    第三百六十三节,Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mget和bulk批量操作 注意:前面讲到的各种操作都是一次http请求操作一条数据,如果想 ...

  4. 四十二 Python分布式爬虫打造搜索引擎Scrapy精讲—elasticsearch(搜索引擎)的mget和bulk批量操作

    注意:前面讲到的各种操作都是一次http请求操作一条数据,如果想要操作多条数据就会产生多次请求,所以就有了mget和bulk批量操作,mget和bulk批量操作是一次请求可以操作多条数据 1.mget ...

  5. ES bulk源码分析——ES 5.0

    对bulk request的处理流程: 1.遍历所有的request,对其做一些加工,主要包括:获取routing(如果mapping里有的话).指定的timestamp(如果没有带timestamp ...

  6. es bulk 批量删除

    bulk [root@hadoop2 ~]# cat bulk.del.es.json {"delete":{"_index":"direct_vot ...

  7. Elasticsearch之CURL命令的bulk批量操作

    大家,也可去看看我下面的博客 Elasticsearch之批量操作bulk 官网上,是举例了新建一个requests文件. [hadoop@master elasticsearch-]$ pwd /h ...

  8. 26.bulk批量操作

    主要知识点 1.bulk语法 2.bulk使用时的注意事项 3.bulk size 对es性能的影响     一.bulk语法 每一个操作要两个json串(delete操作除外),每个json串占一行 ...

  9. elasticsearch使用bulk实现批量操作

    本篇文章提供ES原生批量操作语法及使用bulk批量操作文档.文章依旧提供语法,具体实现大家根据语法,在对应处进行替换即可 一.原生批量获取文档 1.获取指定文档值(1) 语法: GET /_mget ...

随机推荐

  1. SparkMLLib的简单学习

    一. 简介 1. 机器学习中,可以将数据划分为连续数据和离散数据 a. 连续数据:可以取任何值,如房价 b. 离散数据:仅有少量特殊值,如一个房屋有2个或3个房间,但不能为2.75个房间 二. 创建向 ...

  2. Day04:循环结构(while、do-while、for)

    Java 循环结构 - while ,do...while,for 反复执行一段相同或相似代码的格式. 顺序结构的程序语句只能被执行一次.如果您想要同样的操作执行多次,,就需要使用循环结构. Java ...

  3. JetsonTx2刷机

    Jetson TX2是有NVIDIA发布的一款Som(Ssytem on Module)嵌入式设备,该设备包含双核的丹弗2(NVIDIA Denver2)CPU和4个Cortex-A57的ARM核心, ...

  4. flask不得不知的基础

    python与flask不得不说的小秘密 常识引入 什么是装饰器? 在不改变源码的前提下,对函数之前前后进行功能定制. 开放封闭原则:不改变函数内部代码,在函数外部进行修改. 基本写法 import ...

  5. django 之(三) --- 认证|权限

    用户模块 登陆注册1:Django2.0  [ 1:N ] user/url.py from django.urls import path from user.views0 import UserT ...

  6. 解决Vue跨域问题 : 正向代理与反向代理

    你需要做一个反向代理的东西   ===> 打开你的vue项目的config文件夹下的index.js 找到以下代码 dev: { proxyTable: { '/api': { target: ...

  7. 性能工具之JMeter+InfluxDB+Grafana打造压测可视化实时监控(centos7环境)

    前提条件,已经安装jmeter并可以运行 1.安装influxdata wget et https://dl.influxdata.com/influxdb/releases/influxdb-1.7 ...

  8. leetcode 算法整理

    一 字符串中的最大回文串(第5题) Given a string s, find the longest palindromic substring in s. You may assume that ...

  9. SpringBoot或者SpringMVC 临时取消配置的视图页面的前后缀

    // 重定向到新的jsp页面return "redirect:/index.jsp"; // 请求转发到新的jsp页面 return "forward:/index.js ...

  10. Docker的安装和学习

    dockers学习 2019年2月23日开始     docker系统要求             centos 7 核心为3.1以上         centos6.5以上 核心为 2.6以上    ...