【吊打面试官系列-Elasticsearch面试题】详细描述一下 Elasticsearch 搜索的过程?
大家好,我是锋哥。今天分享关于 【详细描述一下 Elasticsearch 搜索的过程?】面试题,希望对大家有帮助;
详细描述一下 Elasticsearch 搜索的过程?
面试官 :想了解 ES 搜索的底层原理,不再只关注业务层面了。
1000道 互联网大厂Java工程师 精选面试题-Java资源分享网
解答 :
搜索拆解为“query then fetch” 两个阶段。
query 阶段的目的 :定位到位置,但不取。
步骤拆解如下:
1、假设一个索引数据有 5 主+1 副本 共 10 分片,一次请求会命中(主或者副本 分片中)的一个。
2、每个分片在本地进行查询,结果返回到本地有序的优先队列中。
3、第 2)步骤的结果发送到协调节点,协调节点产生一个全局的排序列表。
fetch 阶段的目的 :取数据。
路由节点获取所有文档,返回给客户端。