主节点将查询请求分发到所有的分片中各个分片按照自己的查询规则即词频文档频率进行打分排序然后将结果返回给主节点主节点对所有数据进行汇总排序然后再返回给客户端
特点a.存在数据量和排序问题主节点会汇总所有分片返回的数据这样数据量会比较大b.各个分片上的规则可能不一致
QUERY_THEN_FETCH:主节点将请求分发给所有分片各个分片打分排序后将数据的id和分值返回给主节点主节点收到后进行汇总排序再根据排序后的id到对应的节点读取对应的数据再返回给客户端此种方式需要和ES交互两次
特点解决了数据量问题但是排序问题依然存在是ES的默认查询方式
DFS_QUERY_AND_FETCH:和前面两种的区别在于将各个分片的规则统一起来进行打分
DFS_QUERY_THEN_FETCH:和前面两种的区别在于将各个分片的规则统一起来进行打分,将数据的id和分值返回给主节点主节点收到后进行汇总排序再根据排序后的id到对应的节点读取对应的数据再返回给客户端
2. 分页是会给服务器造成很大的压力。原因是会将分片的数据汇总后数据如果有N个分片就会产生N倍的数量。
周公解梦梦见洗头
网友评论 ()条 查看