1、批量查询的好处

一条一条的查询,比如说要查询100条数据,那么就要发送100次网络请求,这个开销还是很大的,如果批量查询的话,查询100条数据,就只要发送1次网络请求,网络请求的性能开销缩减100倍。

2、mget的语法

(1)传统的一条条的查询的方式,语法如下:

GET /test_index/test_type/1
GET /test_index/test_type/2

(2)如果使用mget批量查询,语法如下:

GET /_mget
{"docs":[{"_index":"test_index","_type" : "test_type","_id" : 1},{"_index":"test_index","_type" : "test_type","_id" : 2}]
}

也就是说:直接指定_index,_type,_id。

运行结果是:

{"docs": [{"_index": "test_index","_type": "test_type","_id": "1","_version": 2,"found": true,"_source": {"test_field1": "test field1","test_field2": "test field2"}},{"_index": "test_index","_type": "test_type","_id": "2","_version": 1,"found": true,"_source": {"test_content": "my test"}}]
}

(3)如果查询的document是一个index下的不同type的话。语法如下:

GET /test_index/_mget
{"docs":[{"_type":"test_type1","_id" : 1     },{"_type":"test_type2","_id" : 2}]
}

也就是说,手工指定type类实现

(3)如果查询的数据在同一个index下的同一个type下,最简单的方式:

GET /test_index/test_type/_mget
{"ids":[1,2]
}

运行之后的结果:

{"docs": [{"_index": "test_index","_type": "test_type","_id": "1","_version": 2,"found": true,"_source": {"test_field1": "test field1","test_field2": "test field2"}},{"_index": "test_index","_type": "test_type","_id": "2","_version": 1,"found": true,"_source": {"test_content": "my test"}}]
}

3、mget的重要性

可以说mget是很重要的,一般来说,在进行查询的时候,如果一次性要查询的时候,如果一次性要查询多条数据的话,那么一定要用batch批量操作的api,尽可能减少网络开销次数,可能可以将性能提升数倍,甚至数十倍。

26、ES中使用mget批量查询api(学习笔记,来自课程资料 + 自己整理)相关推荐

  1. 批量查询,mget语法,mget批量查询(来自学习资料,第26节)

    1.批量查询的好处 一条一条的查询,比如说要查询100条数据,那么就要发送100次网络请求,这个开销还是很大的 如果进行批量查询的话,查询100条数据,就只要发送1次网络请求,网络请求的性能开销缩减1 ...

  2. ES中如何实现随机抽样查询

    一.场景说明 索引中有几千万的数据,现在需要每次查询随机抽样返回10条数据,怎么实现? 二.实现方式 DSL语句执行如下: GET myIndex/_search {"from": ...

  3. ES中如何实现对查询结果的二次排序

    一.场景说明 比如我们在CSDN中根据输入的关键词搜索博客文章,需要先根据关键词的相似度匹配排序,然后根据博客热度进行二次排序,保证热度比较高的博客文章优先被搜索到,提高用户的搜索体验. 那么,如何在 ...

  4. es中 term多字段查询

    es中 must 多字段查询可以如下操作 {"query": {"bool": {"must": [{"term":{& ...

  5. SQL Server 2008中SQL应用系列及BI学习笔记系列--目录索引 @邀月

    邀月 的数据库学习 http://www.cnblogs.com/downmoon/archive/2011/03/10/1980172.html SQL Server 2008中SQL应用系列及BI ...

  6. 《SQL必知必会》查询部分学习笔记

    目录 <SQL必知必会>查询部分学习笔记 1 前言 2 认识SQL 3 检索数据 4 排序检索数据 5 过滤数据 6 高级数据过滤 7 通配符 8 创建计算字段 9 使用函数处理数据 11 ...

  7. Crypto API 学习笔记一

    标 题: [原创]Crypto API 学习笔记一 作 者: jdxyw 时 间: 2006-09-01,16:47 链 接: http://bbs.pediy.com/showthread.php? ...

  8. Asp.Net 中Report Service (RDLC)动态绑定数据-学习笔记

    Asp.Net 中Report Service (RDLC)动态绑定数据-学习笔记 1)托拽ReportViewer控件到aspx页面,此时,系统会自动添加相关引用,修改Web.config设置: 2 ...

  9. Java中如何创建自定义的注解学习笔记(MD版)

    概要 Java中如何创建自定义的注解学习笔记(MD版). 博客 博客地址:IT老兵驿站. 前言 记得这篇笔记还是在泉州的龙玲酒店记录的,是一个周六的晚上,坐飞机从上海到泉州,从笔记中能勾起一些旅游的回 ...

最新文章

  1. Netty面试题 汇总
  2. 解决Lync联盟用户之间只能IM聊天不能进行A/V呼叫问题
  3. 无忧技术带您预览DFS(分布式文件系统)管理控制台
  4. 2019年猪年海报PSD模板-第四部分
  5. Shadow Mapping 的原理与实践 【转】
  6. ORA-28000: the account is locked 解决方法
  7. SpringMVC 基于注解的Controller详解
  8. uva 10120——Gift?!
  9. 将动态路由、布局和RouteViews添加到Blazor应用程序组件
  10. hg更新下载指定版本
  11. 《 Python笔记》— 将pyinstalller打包封装的exe文件反编译为pyc文件和python文件
  12. 在线HTTP POST/GET接口测试工具
  13. android 网络邻居,魅族Flyme系统中怎么设置网络邻居?
  14. LaTex编辑器编辑公式
  15. 图像处理 - ImageMagick 简单介绍与案例
  16. 台式计算机品牌怎么查,教你怎么看电脑主板型号和品牌
  17. Unity实现人物移动和镜头跟随
  18. CAD多段线无法合并的问题
  19. 盘点超好用的 Mac 键盘快捷键
  20. python实现堆栈_Python堆栈实现计算器

热门文章

  1. android 富文本框架_五种JavaScript富文本编辑器,总有一款适合你
  2. Python自动化运维——文件与目录差异对比
  3. 操作系统知识点总结以及期末考试考点
  4. 第四讲 Python3中的int型和浮点型
  5. word2vec词向量 文本分类实现(TensorFlow版,算法TextCNN)
  6. opencv进阶学习笔记11:cannny边缘检测,直线检测,圆检测
  7. foreach 实现 MyBatis 遍历集合与批量操作数据
  8. 为什么 HashMap 常用 String 对象作 key
  9. TK:vtkCellTreeLocator用法实战
  10. wxWidgets:wxStringBufferLength类用法