在前面的演示中,我们都是基于一次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

 我们去head插件中看看,可以看到它自动为我们创建了所以index,而且还插入了两条数据:

注意事项:

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

示例如下:

ElasticSearch基础之批量操作(mget+mbulk)的更多相关文章

  1. ELK(elasticsearch+kibana+logstash)搜索引擎(二): elasticsearch基础教程

    1.elasticsearch的结构 首先elasticsearch目前的结构为 /index/type/id  id对应的就是存储的文档ID,elasticsearch一般将数据以JSON格式存储. ...

  2. Elasticsearch 基础入门

    原文地址:Elasticsearch 基础入门 博客地址:http://www.extlight.com 一.什么是 ElasticSearch ElasticSearch是一个基于 Lucene 的 ...

  3. ElasticSearch 基础 1

    ElasticSearch 基础=============================== 索引创建 ========================== 1. RESTFUL APIAPI 基本 ...

  4. Elasticsearch基础但非常有用的功能之二:模板

    文章转载自: https://mp.weixin.qq.com/s?__biz=MzI2NDY1MTA3OQ==&mid=2247484584&idx=1&sn=accfb65 ...

  5. elasticsearch 基础 —— _mget取回多个文档及_bulk批量操作

    取回多个文档 Elasticsearch 的速度已经很快了,但甚至能更快. 将多个请求合并成一个,避免单独处理每个请求花费的网络延时和开销. 如果你需要从 Elasticsearch 检索很多文档,那 ...

  6. elasticsearch 基础 —— 分布式文档存储原理

    路由一个文档到一个分片中 当索引一个文档的时候,文档会被存储到一个主分片中. Elasticsearch 如何知道一个文档应该存放到哪个分片中呢?当我们创建文档时,它如何决定这个文档应当被存储在分片  ...

  7. 最完整的Elasticsearch 基础教程

    翻译:潘飞(tinylambda@gmail.com) 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概念会对整个学习过程有莫大的帮助. 接近实时(NRT)        Ela ...

  8. ELK 之一:ElasticSearch 基础和集群搭建

    一:需求及基础: 场景: 1.开发人员不能登录线上服务器查看详细日志 2.各个系统都有日志,日志数据分散难以查找 3.日志数据量大,查询速度慢,或者数据不够实时 4.一个调用会涉及到多个系统,难以在这 ...

  9. Elasticsearch基础教程

    Reference: http://blog.csdn.net/cnweike/article/details/33736429 基础概念 Elasticsearch有几个核心概念.从一开始理解这些概 ...

随机推荐

  1. iOS设计模式 - (2)UML类间关系精解

    在正式讲设计模式之前, 介绍一下UML类图之间的关系还是非常有必要的, 由于一些教程, 书籍, 包含我之后的文章, 都会大量使用类图, 去描写叙述各个类之间的关系.这是一种非常直观, 简约的方式. 当 ...

  2. Oracle pipe

    初次接触到Report ,看到了它背后复杂的SQL操作, 首先看到了一个Pipe,先了解下PIPE的用法: 关键字PIPELINED表明这是一个oracle管道函数,oracle管道函数的返回值类型必 ...

  3. 轻松搞定RabbitMQ(三)——消息应答与消息持久化

    转自 http://blog.csdn.net/xiaoxian8023/article/details/48710653 这个官网的第二个例子中的消息应答和消息持久化部分.我把它摘出来作为单独的一块 ...

  4. Android 中View仅仅能接收到ACTION_DOWN无法接收ACTION_MOVE和ACTION_UP解决的方法

    昨天晚上调试了一晚上,在LinearLayout上接收屏幕动作,可是出现了问题, 以下的代码是本人调的代码 </pre><pre name="code" clas ...

  5. Spring源码学习(一)资源加载

    这里先从最简单的一个Spring例子开始. 下面是Spring的context的配置 <?xml version="1.0" encoding="UTF-8&quo ...

  6. 循序渐进学Python2变量与输入

    新建一个test.py文件,右键选择“Edit with IDLE”,编辑完成后,Ctrl+S保存,然后按下F5就可以执行代码了. 注:IDLE是Python官方提供的一个IDE工具. 目录 [隐藏] ...

  7. 设置Activity进入退出动画

    http://blog.csdn.net/tenpage/article/details/7792689 http://blog.csdn.net/lnb333666/article/details/ ...

  8. 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 ...

  9. Android笔记之为TextView设置边框

    效果图 text_view_background.xml <?xml version="1.0" encoding="utf-8"?> <sh ...

  10. (转)Android--UI之ImageView

    前言 这篇博客聊一聊在Android下ImageView的使用,在此篇博客中,会讲解到ImageView的一些属性的使用,以及ImageView展示图片的放大.缩小.旋转等操作.最后再讲解一下Andr ...