elasticsearch 搜索过程

https://www.elastic.co/guide/en/elasticsearch/reference/5.6/search-request-search-type.html#dfs-query-then-fetch

查询类型(参数search_type指定): 
(一)        query_then_fetch 
分为两个阶段: 
1)        协调节点将请求发送到与搜索语句相关的索引分片(即搜索语句中索引的所有分片)上,各分片分别进行查询(因为每个分片都是一个独立的lucene索引)得到结果,并进行排序,得出(from+size)大小的结果集,然后将轻量级的信息(足够协调节点重新排序)发送给协调节点。协调节点接收到所有分片(超时不侯)的结果,并进行全局排序,这样得到[from,from+size)的结果集。 
2)        协调节点从与最终结果相关的分片中获取文档的内容(包括高亮显示的分片等),并返回给客户端。 
(二)        dfs_query_then_fetch 
过程跟query_then_fetch是一样的,不同之处在于第一阶段在计算score的时候使用的term frequency是local的,即只用自己分片的term frequency,会产生的问题是,可能相同的内容在不同的分片得到的得分不一样,也可能出现明明更相关的文档的得分反而比不那么相关的文档的score小。而dfs_query_then_fetch使用全局的term frequency,这样可以得到更准确的scoring。 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值