ES GET/MGET 设计理解
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)集群节点角色
个人学习资源免费分享网站:http://xiaocaoshare.com/ 1.关于单机架构.集群架构.分布式架构理解: 单机架构:所有的代码都写在一个项目中,项目部署在一台服务器上 集群架构:就是单 ... 对于绝大多数的游戏来说,AI都是不可或缺的一部分,优秀的AI设计可以增加游戏深度,提高游戏的挑战性,增加游戏的幽默感,甚至可以让游戏视觉效果.动画以及更多方面更加突出.不过,游戏AI的设计并不是月困难 ... ES的读取分为GET和Search两种操作,这两种读取操作有较大的差异,本章我们主要分析下GET/MGET读取操作. GET/MGET GET/MGET必须指定三元组:_index._type._id ... 设计并不是一味只求美感或者感觉,设计同样是一门建立在多学科基础上的科学,从认知角度来理解设计能帮助我们设计出更多尊重用户的作品,这样的设计才能经得起时间的考验,让更多用户所喜爱. 下面是我对<认 ... 平面设计中怎么塑造立体感 重点 (Top highlight) 设计神话:花式椅子 (The myth of design: Fancy chairs) The role of design has ... ES即简单又复杂,你可以快速的实现全文检索,又需要了解复杂的REST API.本篇就通过一些简单的搜索命令,帮助你理解ES的相关应用.虽然不能让你理解ES的原理设计,但是可以帮助你理解ES,探寻更多的 ... iPhone的OpenGL ES的资源- 18,你必须知道 ! OpenGL ES是编程的iPhone使用的图形API. 如果要创建自己的游戏引擎,从头开始设计一个游戏,或者创造一些其他图形密集型应用 ... ElasticSearch概述 ElasticSearch是一个基于Lucene的搜索服务器.它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful接口.它可以近乎实时的存储.检索数据:本身扩 ... 人间观察 勿再别人的心中修行自己, 勿再自己的心中强求别人. 前言 最近写文章有点偷懒了,离上次写文章大概一个月了. 一般Android音频的采集在java层使用AudioRecord类进行采集. 但 ...ES GET/MGET 设计理解相关推荐
最新文章
热门文章