参考:深入理解Elastic Search
Elastic Search内部基于Apache Lucene开发。Lucense:将写入所有信息组成倒排索引(inverted Index)结构。将词项映射到文档
管理节点:集群中有一个节点被选为管理节点,负责集群状态管理和集群拓扑变化时做出反应,分发索引分片至集群相应节点上。
所有请求可发送至任意节点,如果有需要任意节点可并行发送子查询给其他节点,并合并搜索结果返回。
建索引:只发生在主分片,而不是副本。当发请求给只有副本的节点时,请求会被转发拥有正确主分片的节点。
查询:分为scatter phase和gather phase; Scatter将query分发包含相关文档多个分片查询;gather 从众多分片中收集结果并合并、排序 ---》每个分片都会返回查询数量的数据,最终在整合阶段排序,丢弃,所以要求分片查询不能太大,否则资源消耗多。