zoukankan      html  css  js  c++  java
  • elasticsearch 5.5 query 过程 源码分析

    (1)请求 transfer to  任意node 节点 标记为coordinate node

    server入口函数 transportSearchAction doExecute方法

    coordinate  node 将请求处理形成AbstractSearchAsyncAction的一个继承类,

    调用该继承类中的start方法,进而通过使用this调用其父类InitialSearchPhrase中 run方法,轮询各个shard,对每一个shard执行performPhaseOnShard方法,通过调用自身

    executePhaseOnShard方法中通过调用SearchTransportService中sendExecuteQuery同时请求发送到指定的shard中,会监听其结果,监听结果会调用onphrasedone方法,其用于判定是否执行executeNextPhase方法

    (2)每一个shard 中RequestHandlerRegistry 类启动一个监听方法processMessageReceived方法,此方法获取coordinate node发送来的请求,然后调用SearchService中executeQueryPhase方法,进而调用各种SearchPhrase实现类。

    最终会调用lucene中的IndexSearch中的方法返回数据。

  • 相关阅读:
    javascript的自定义对象
    解决trim兼容性
    AJAX
    javascript中的默认对象
    js原始数据类型
    javascript的内置对象
    空判断啊
    javascript的继承
    html如何设置P的高度为零?
    asp.net 生成静态页 自动分页
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/7919449.html
Copyright © 2011-2022 走看看