ES的读取分为GET和Search两种操作,这两种读取操作有较大的差异,本章我们主要分析下GET/MGET读取操作。

GET/MGET必须指定三元组:_index、_type、_id(http://127.0.0.1:9200/_index/_type/_id),也就是说,根据文档id从正排索引中获取内容。

注:ElasticSearch中同时保存了正排索引和倒排索引,对该知识不清楚的可以参考:

深入理解正排索引与倒排索引(设计思想和数据结构)

GET基本流程

搜索和读取文档都属于读操作,可以从主分片或副分片中读取数据。

读取单个文档的流程(图片来自官网)可如下图:

注:其中P->primary shard(主分片),R->replication shard (副分片)

步骤如下:

(1)客户端向NODE1发送读请求(此时NODE1作为协调节点

(2)NODE1是同文档ID来确定文档属于分片0,通过集群状态中的内容路由表信息获取分片0有三个副本数据,位于三个节点中,此时它可以通过将请求发送到任意节点,图上所示是将请求发送到NODE2。

(3)NODE2将文档返回给NODE1,NODE1将文档返回给客户端(因为只是获取单个数据信息,不会涉及协调节点的聚合等操作)

注:NODE1在此流程中作为协调节点,将客户端请求轮询发送到集群的所有副本来实现负载均衡

了解ElasticSearch中节点角色也是很重要的,对节点角色不清楚的,可以参考:

ES(Elasticsearch)集群节点角色

ES GET/MGET 设计理解相关推荐

  1. java架构设计理解(一)

    个人学习资源免费分享网站:http://xiaocaoshare.com/ 1.关于单机架构.集群架构.分布式架构理解: 单机架构:所有的代码都写在一个项目中,项目部署在一台服务器上 集群架构:就是单 ...

  2. 浅谈AI设计:理解玩家们对游戏的感知方式

    对于绝大多数的游戏来说,AI都是不可或缺的一部分,优秀的AI设计可以增加游戏深度,提高游戏的挑战性,增加游戏的幽默感,甚至可以让游戏视觉效果.动画以及更多方面更加突出.不过,游戏AI的设计并不是月困难 ...

  3. ES Search流程 与GET/MGET

    ES的读取分为GET和Search两种操作,这两种读取操作有较大的差异,本章我们主要分析下GET/MGET读取操作. GET/MGET GET/MGET必须指定三元组:_index._type._id ...

  4. 从认知角度去理解设计

    设计并不是一味只求美感或者感觉,设计同样是一门建立在多学科基础上的科学,从认知角度来理解设计能帮助我们设计出更多尊重用户的作品,这样的设计才能经得起时间的考验,让更多用户所喜爱. 下面是我对<认 ...

  5. 平面设计中怎么塑造立体感_设计塑造理解和信念的力量

    平面设计中怎么塑造立体感 重点 (Top highlight) 设计神话:花式椅子 (The myth of design: Fancy chairs) The role of design has ...

  6. es怎么返回全部查询结果_es的返回数据结构

    ES即简单又复杂,你可以快速的实现全文检索,又需要了解复杂的REST API.本篇就通过一些简单的搜索命令,帮助你理解ES的相关应用.虽然不能让你理解ES的原理设计,但是可以帮助你理解ES,探寻更多的 ...

  7. iPhone的OpenGL ES的资源- 18,你必须知道 !

    iPhone的OpenGL ES的资源- 18,你必须知道 ! OpenGL ES是编程的iPhone使用的图形API. 如果要创建自己的游戏引擎,从头开始设计一个游戏,或者创造一些其他图形密集型应用 ...

  8. 全文检索与ElasticSearch(一)——ES概述,正向索引与倒排索引,B+树,简单命令,Mapping

    ElasticSearch概述 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful接口.它可以近乎实时的存储.检索数据:本身扩 ...

  9. Android音视频【十三】OpenSL ES介绍基于OpenSL ES实现音频采集

    人间观察 勿再别人的心中修行自己, 勿再自己的心中强求别人. 前言 最近写文章有点偷懒了,离上次写文章大概一个月了. 一般Android音频的采集在java层使用AudioRecord类进行采集. 但 ...

最新文章

  1. 南大和中大“合体”拯救手残党:基于GAN的PI-REC重构网络,“老婆”画作有救了 | 技术头条...
  2. Python 变量类型
  3. NYOJ 905 卡片游戏
  4. 一个通过数据库镜像实现SPS 2003门户快速备份与恢复的操作手册
  5. [转]SSH反向连接及Autossh
  6. java dao service实例_浅谈Action+Service +Dao 功能
  7. python 操作RabbitMQ
  8. tp中怎么执行mysql事务_tp中使用事务
  9. Android导入第三方静态库.a编译成动态库.so
  10. Linux (x86) Exploit 开发系列教程之八 绕过 ASLR -- 第三部分
  11. thinkphp中I方法
  12. 地方旅游产业运行监测与应急指挥平台/旅游资源管理平台/旅游产业监测平台/旅游应急指挥平台/旅游资源统计/旅游线路数据/旅游产业可视化大屏管理系统/餐饮场所数据/游客流量监测/景区数据监测/视频监控
  13. sqlmap命令详解(最全版本)
  14. 国开电大 古代诗歌散文专题 形考任务
  15. 【渝粤题库】广东开放大学 期货与期权 形成性考核
  16. 局域网共享文件搭建方法
  17. Android TextView设置跑马灯效果
  18. RefreshLayout让你半小时以内完成一个列表界面
  19. python基础练习-人名最多数统计
  20. svn checkout 忽略某个文件夹

热门文章

  1. Ubuntu18上安装QSV+FFMPEG环境
  2. 用java写一个判断身份验证是否过期
  3. 免费资源:Bootstrap开发的创意模板
  4. Linux关于防火墙的部分笔记
  5. 毕设题目:Matlab条形码识别
  6. 虚拟机安装 密码三原则
  7. SQL Server数据库还原操作(附加备份操作)
  8. Python量化交易实战-29什么是价格动量效应
  9. 关于友盟Open API接口调用
  10. Java微服务前后端分离技术开发的微信快速框架-教程