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中的方法返回数据。

  • 相关阅读:
    grunt 使用比较
    一些技术要点
    git 使用笔记
    oo的一些概念
    借用构造函数继承非原型
    bower解决js的依赖管理
    需要了解的一些东西
    一些常用的代码
    js模式(一):单例模式
    写给自己的计划
  • 原文地址:https://www.cnblogs.com/sunshisonghit/p/7919449.html
Copyright © 2011-2022 走看看