elasticsearch 5.5 query 过程 源码分析
2024-09-05 06:00:03
(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中的方法返回数据。
最新文章
- MAC 如何使用Github Desktop 客户端
- java学习:Hibernate入门
- 微信html5开发选哪一个
- Git 中级用户的25个提示
- git svn 5点区别
- jboss项目迁移至WebLogic12
- modelsim命令行仿真提示“vsim 不是内部或外部命令,也不是可运行的程序或批处理文件”的解决办法
- [Quote]Creating basic Excel workbook with Open XML
- JVM学习(1)——通过实例总结Java虚拟机的运行机制(转)
- 了解 : angular $rootScope 在 ui-view
- 浅析强连通分量(Tarjan和kosaraju)
- IsKeyboardFocused -- 键盘焦点
- 快速开发 HTML5 交互式地铁线路图
- 解决 webpack-dev-server 不能自动刷新的问题
- 20155208徐子涵 2016-2017-2 《Java程序设计》第6周学习总结
- python中@staticmethod与@classmethod
- Eclipse中JSP生成的类文件存放在哪
- 2017-2018 Exp5 MSF基础应用 20155214
- 【Linux】tail命令
- Linux下配置redis,c#简单调用