倒排索引:略。
PageRank 算法:如果一个网页里包含了某个网页的超链接,那么就表示该网页认可某个网页,或者说,该网页给某个网页投了一票。比如 B 页面包含了 A 和 D 两个页面的超链接,那么自己的权重 1 就被分成两个 1/2 分别投给 A 和 D。经过一轮 PageRank 计算后,每个页面都有了新的权重,然后基于这个新的权重再继续一轮计算,直到所有的网页权重稳定下来,就得到最终所有网页的权重,即最终的 PageRank 值。Google 使用了一种叫 PageRank 的算法,计算每个网页的权重,搜索结果就按照权重排序,权重高的网页在最终结果显示的时候排在前面。
文中我们讨论了 PageRank 算法,如果只有几百个网页,那么写一个程序计算每个网页 PageRank 就可以了,但是如果是 Google 这样万亿级的网页,网页之间的超链接关系数量更加庞大,而 PageRank 算法又需要多轮计算,如何才能较快地计算出所有网页的 PageRank 值呢?
Google 发明并行计算工具 MapReduce,减少 PageRank 的计算时间。