zoukankan      html  css  js  c++  java
  • Elasticsearch的query phase和fetch phase

    对于一次query查询到数据返回到客户端,经历了两个过程  query phase和fetch phase的过程

    query phase 查询阶段     fetch phase 获取阶段。

    1 query phase

    (1)搜索请求发送到某一个coordinate node,构构建一个priority queue,长度以paging操作from和size为准,默认为10

    必须查询第1000页 每页的大小时10 那么建立的priority queue的大小就是 1000*10+1=100010size的大小

    (2)coordinate node将请求转发到所有shard,每个shard本地搜索,并构建一个本地的priority queue大小和coordination构建的size一致即可。
    (3)各个shard将自己的priority queue返回给coordinate node,并构建一个全局的priority queue。这一步就是query phase的阶段  然后采用fetch phase的过程  从queue得到需要返回的docId 通过routing原理去到每个分片中获取数据,返回给client客户端。

    上面不清楚的看自己的博客:elasticsearch深度搜索

    ********************** replica shard如何提升搜索吞吐量**********************

    一次请求要打到所有shard的一个replica/primary上去,如果每个shard都有多个replica,那么同时并发过来的搜索请求可以同时打到其他的replica上去,

    例如有10个replica节点,每一秒就支持10个请求的查询,提高了并发

    ********************** replica shard如何提升搜索吞吐量**********************

    2.关于fetch phase的过程

    (1)coordinate node构建完priority queue之后,在这粒取到docId,就发送mget请求去所有shard上获取对应的document
    (2)各个shard将document返回给coordinate node
    (3)coordinate node将合并后的document结果返回给client客户端

    *********************一般搜索,如果不加from和size,就默认搜索前10条,按照_score排序*********************

  • 相关阅读:
    SQL Server未找到或无法訪问server问题解决
    cmd 控制台 提示:请求的操作须要提升!
    网站反爬虫
    辨异 —— 近义词(词组)
    推理集 —— 现象与观察
    推理集 —— 现象与观察
    生活中的物理、化学(四)
    生活中的物理、化学(四)
    中医我还是持赞成的态度
    文言的训练和积累
  • 原文地址:https://www.cnblogs.com/kebibuluan/p/13022042.html
Copyright © 2011-2022 走看看