美文网首页
elasticsearch中的SearchType

elasticsearch中的SearchType

作者: 一只特立独行的喵_807c | 来源:发表于2018-12-22 13:36 被阅读0次

分布式搜索的过程:


1.分别向5个分片发起请求

2.将5个分片的符合要求的结果全部返回,重新进行排序返回给用户

这种方式将会产生两个问题:


1.数量问题:假设用户要求返回10条数据,则5个分片会返回50条数据

2.排名问题:每个分片的分值都是基于本分片计算的,而ES排序是根据每个分片返回的分值进行排序的,这就导致了排序不准确

ES因此设置了四种查询方式:

query and fetch


向索引的所有分片发起请求,返回时将文档及排名信息一起返回

优点: 查询速度最快

缺点: 返回的数据量时是要求的n倍,排名不准确

query then fetch(默认)


1.向所有分片发起请求,只返回排序及排名相关的信息,整体进行重新排序,取前n个文档

2.去相关的shard取document

优点: 返回的数据量准确

缺点: 性能一般,排名不准确

DES query and fetch


比第一种方式多了DES操作. 即在查询之前,向所有分片发送请求,返回所有分片中的词频和文档频率并进行汇总,再执行进一步操作.

优点: 排名准确

缺点: 返回的数据量不准确,性能一般

DES query then fetch


比第二种方式多了DES操作

优点: 排名准确,返回的数据量准确

缺点: 性能一般

相关文章

网友评论

      本文标题:elasticsearch中的SearchType

      本文链接:https://www.haomeiwen.com/subject/jqlikqtx.html