搜索引擎对结果进行排序是如何进行的?
一般的搜索引擎对搜索到的结果,并返回TOP-K个结果,这TOP-K个结果是所用的结果集合的前K个还是在多少个以内的前K个(局部最好的K个结果),类似于贪心算法。
下面举个例子说明一下:
例如我们搜索:关键词1,关键词2
假如百度搜索到一百万万个结果,但返回给我们是top-k个结果,
第一种方案:这top-k个结果是一百万个里面最好的,并返回给客户
第二种方案:给一个容量为1万的队列,每次把结果添加到这个队列里面,并弹出当前一万零一个最好的一个结果保存到top-k的集合中,从而使得这个队列一直是1万个,直到找到top-k个结果后返回给客户。
一般的搜索引擎是采取那种方案?我个人觉得是第二种方案,因为这样更省时间,因为此时返回的结果是局部最优,但不是全局最优,意思类似于贪心算!
在此想请教一下个为大虾,有没有更新的想法个观点,希望大虾们能和我分享一下。
谢谢了!!!!
[解决办法]
看一下《深入搜索引擎》你就懂了
[解决办法]
不是用普通的队列 而要用二叉堆
[解决办法]
wo jiangyou