ElasticSearch基础之批量操作(mget+mbulk)
在前面的演示中,我们都是基于一次http查询,每次查询都要建立http的三次握手请求,这样比较耗费性能!因此ES给我们提供了基本的批量查询功能,例如如下的查询,注意里面的index是可以任意指明的,不需要都一致
【01】批量查询之_mget操作,如下查询表示指定同时查询索引testdb下的两个type(job1和job2)里面的数据:注意我们可以在这里指定不同的索引,例如testdb1,testdb2;另外这里要指定doc关键词,表示我查询的是一个文档:

【02】查询同一个index下面不同type的数据,我们直接在url地址中先指明index为testdb,然后在里面就不用指明了:

【03】如果连type都是一样的,那就只需要查询id了,依然不要忘记使用doc关键词

我们还可以基于上面的情形继续简写,下面这种写法就更加简便了

需要注意的是:上面使用docs指定时,它对应的value是一个数组,数组里面的每个元素都是字典。
【04】ES的bulk批量操作 来看看网络上的一张截图:

相当于就是使用了元数据来完成数据的批量导入,每导入一条数据,由两行构成,一条是元信息,另一条是数据行,来看看笔者实际的例子:

注意上面的数据格式一定要做成一行,不要优化成json数据格式
示例1:使用POST来完成bulk操作演示:蓝色的为元数据信息:
{"index":{"_index": "lagou", "_type": "job", "_id":"1"}}
{"title": "python爬虫开发工程师","salary_min": ,"city": "北京","company":{"name": "百度","company_adr": "北京市软件园3栋"},"publish_date": "2017-4-16","comments":}
{"index":{"_index": "lagou", "_type": "job2", "_id":"2"}}
{"title": "python django开发工程师","salary_min": ,"city": "成都","company":{"name": "","company_adr": "杭州软件园3栋"},"publish_date": "2017-4-16","comments":}
运行截图如下所示:记住在上面使用POST _bulk


注意事项:
关于bulk操作的解说:
.第一行是操作,例如index操作,后面的value是元数据,指明index操作是针对哪个索引,哪个type,哪个id进行的;
.第二行才是数据 但是要注意的是delete操作只有一行数据,因为只需要提供一个id即可 下面的create操作和update操作都是两行数据。
示例如下:

ElasticSearch基础之批量操作(mget+mbulk)的更多相关文章
- ELK(elasticsearch+kibana+logstash)搜索引擎(二): elasticsearch基础教程
1.elasticsearch的结构 首先elasticsearch目前的结构为 /index/type/id id对应的就是存储的文档ID,elasticsearch一般将数据以JSON格式存储. ...
- Elasticsearch 基础入门
原文地址:Elasticsearch 基础入门 博客地址:http://www.extlight.com 一.什么是 ElasticSearch ElasticSearch是一个基于 Lucene 的 ...
- ElasticSearch 基础 1
ElasticSearch 基础=============================== 索引创建 ========================== 1. RESTFUL APIAPI 基本 ...
- Elasticsearch基础但非常有用的功能之二:模板
文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484584&idx=1&sn=accfb65 ...
- elasticsearch 基础 —— _mget取回多个文档及_bulk批量操作
取回多个文档 Elasticsearch 的速度已经很快了,但甚至能更快. 将多个请求合并成一个,避免单独处理每个请求花费的网络延时和开销. 如果你需要从 Elasticsearch 检索很多文档,那 ...
- elasticsearch 基础 —— 分布式文档存储原理
路由一个文档到一个分片中 当索引一个文档的时候,文档会被存储到一个主分片中. Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?当我们创建文档时,它如何决定这个文档应当被存储在分片 ...
- 最完整的Elasticsearch 基础教程
翻译:潘飞(tinylambda@gmail.com) 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT) Ela ...
- ELK 之一:ElasticSearch 基础和集群搭建
一:需求及基础: 场景: 1.开发人员不能登录线上服务器查看详细日志 2.各个系统都有日志,日志数据分散难以查找 3.日志数据量大,查询速度慢,或者数据不够实时 4.一个调用会涉及到多个系统,难以在这 ...
- Elasticsearch基础教程
Reference: http://blog.csdn.net/cnweike/article/details/33736429 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概 ...
随机推荐
- iOS设计模式 - (2)UML类间关系精解
在正式讲设计模式之前, 介绍一下UML类图之间的关系还是非常有必要的, 由于一些教程, 书籍, 包含我之后的文章, 都会大量使用类图, 去描写叙述各个类之间的关系.这是一种非常直观, 简约的方式. 当 ...
- Oracle pipe
初次接触到Report ,看到了它背后复杂的SQL操作, 首先看到了一个Pipe,先了解下PIPE的用法: 关键字PIPELINED表明这是一个oracle管道函数,oracle管道函数的返回值类型必 ...
- 轻松搞定RabbitMQ(三)——消息应答与消息持久化
转自 http://blog.csdn.net/xiaoxian8023/article/details/48710653 这个官网的第二个例子中的消息应答和消息持久化部分.我把它摘出来作为单独的一块 ...
- Android 中View仅仅能接收到ACTION_DOWN无法接收ACTION_MOVE和ACTION_UP解决的方法
昨天晚上调试了一晚上,在LinearLayout上接收屏幕动作,可是出现了问题, 以下的代码是本人调的代码 </pre><pre name="code" clas ...
- Spring源码学习(一)资源加载
这里先从最简单的一个Spring例子开始. 下面是Spring的context的配置 <?xml version="1.0" encoding="UTF-8&quo ...
- 循序渐进学Python2变量与输入
新建一个test.py文件,右键选择“Edit with IDLE”,编辑完成后,Ctrl+S保存,然后按下F5就可以执行代码了. 注:IDLE是Python官方提供的一个IDE工具. 目录 [隐藏] ...
- 设置Activity进入退出动画
http://blog.csdn.net/tenpage/article/details/7792689 http://blog.csdn.net/lnb333666/article/details/ ...
- flume-ng script should first try finding java from PATH and then try using bigtop, instead of vice-versa
[FLUME-1154] flume-ng script should first try finding java from PATH and then try using bigtop, inst ...
- Android笔记之为TextView设置边框
效果图 text_view_background.xml <?xml version="1.0" encoding="utf-8"?> <sh ...
- (转)Android--UI之ImageView
前言 这篇博客聊一聊在Android下ImageView的使用,在此篇博客中,会讲解到ImageView的一些属性的使用,以及ImageView展示图片的放大.缩小.旋转等操作.最后再讲解一下Andr ...