详细描述 Elasticsearch 搜索的过程?

Elasticsearch的搜索过程可以分为以下几个步骤:

  1. 查询(Query)阶段:当一个搜索请求发出时,这个查询会被广播到索引中的每一个分片(主分片或副本分片)。每个分片在本地执行查询请求后生成一个命中文档的优先级队列。这个队列是一个排序好的top N数据的列表,它的size等于from+size的和。每个分片返回各自优先队列中所有文档的ID和排序值给协调节点。
  2. 取回(Fetch)阶段:协调节点辨别出哪些文档需要被取回并向相关的分片提交多个GET请求。每个分片加载并丰富文档,如果有需要的话,接着返回文档给协调节点。一旦所有的文档都被取回,协调节点返回结果给客户端。

在搜索的时候,Elasticsearch会查询Filesystem Cache,但有部分数据还在MemoryBuffer,所以搜索是近实时的

发表评论

后才能评论