某搜索引擎,就比如百度,每天的用户搜索词汇是百亿数据量,请设计一种算法,求出每天热门Top100词汇。
首先,还是基于哈希分流的思想,用哈希函数,将问题映射到N台分布式计算机上统计各个搜索词频。
假设1000台分布式计算机,那么,此时,原始的数据就平均分成了1000份,并且,因为哈希函数的性质,相同的数据肯定会被分配到相同的分布式计算机上,因此,这1000台各自统计的数据都是正确无误的,相同词汇不可能出现在两台分布式计算机上。
然后,在各自的分布式计算机上,维护一个大根堆,堆顶就是出现频次最高的词汇。
然后,取出每一个大根堆的堆顶,再组成一个总的大根堆,此时,这个总大根堆的堆顶就是当天词频第一的,然后,词频第一的词出总堆,同时他也从他所在的分布式堆顶出堆,然后,这个词汇是从哪一个分布式上的大根堆出来的,就让那个分布式的新堆顶入总大根堆,然后,再从总大根堆选出第二高频词,依次循环上述步骤,选出前100个。
以上就是本篇文章【百度前100个热门搜索词汇算法思路分析】的全部内容了,欢迎阅览 ! 文章地址:http://ww.kub2b.com/news/19040.html
栏目首页
相关文章
动态
同类文章
热门文章
网站地图
返回首页 企库往资讯移动站 http://ww.kub2b.com/mobile/ , 查看更多