开发者学堂课程【ElasticSearch 入门精讲:SearchType 详解】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/631/detail/10000
SearchType 详解
es 的搜索类型有4种
query and fetch(速度最快)(返回N倍数据量)
query then fetch(默认的搜索方式)
DFS query and fetch
DFS query then fetch(可以更精确控制搜索打分和排名。)
DFS 解释:见备注
总结一下
从性能考虑 QUERY_AND_FETCH 是最快的
DFS_QUERY_THEN_FETCH 是最慢的。从搜索的准确度来 说,DFS 要比非 DFS 的准确度更高。
DFS 是什么缩写?
这个 D 可能是 Distributed,F 可能是 frequency 的缩写,至于 S 可能是 Scatter 的缩写,整个单词可能是分布式词频率 和文档频率散发的缩写。
初始化散发是一个什么样的过程?
从 es 的官方网站我们可以发现,初始化散发其实就是在进行真正的查询之前,先把各个分片的词频率和文档频率 收集一下,然后进行词搜索的时候,各分片依据全局的词频率和文档频率进行搜索和排名。显然如果使用 DFS_QUERY_THEN_FETCH这种查询方式,效率是最低的,因为一个搜索,可能要请求3次分片。
但使用 DFS 方法,搜索精度应该是最高的。