1ES架构简介
国际惯例,站在上帝的视角看看闻名的ElasticSearch长什么样,由于今天仅仅讲查询模块,所以对图中的大多数模块不会涉及。
查询相关的模块主要有:Api接口,Transport模块,Searcher模块、索引相关。
2ES查询分类
ElasticSearch支持的查询有三种
-
query_and_fetch
-
query_then_fetch
-
DFS_query_and_fetch
三种查询的名字都很简练,并且单词都很熟悉,那这三种查询各代表什么意思,又该如何选择呢?首先需要理解什么是query,和fetch,以及DFS。
一般来说检索的查询都会分为两个阶段
a: 获取命中的docid list (只需要id和score即可)。
b: 根据符合条件的docid,取正排信息,返回客户端,展示。
上面a叫做query过程,b叫fetch过程。
那什么叫DFS?DFS,即Document Frequency Search。这里我只告诉你全称,如果你有兴趣的话,你一定会自查,如果没有兴趣,也不会影响这篇文章的理解。