搜索引擎,爬虫
搜索引擎
搜索引擎的基本原理是布尔代数。
首先建立一张索引表,根据用户输入的关键字返回每个网页是否存在该关键字(TRUE(1) or FALSE(0)),若有多个关键字,则对返回的结果串(二进制)进行布尔运算(与,或,非),最后返回所有返回条件的索引值,然后根据索引值返回对应网页。因为计算机处理二进制数据的速度很快,这也是搜索引擎能在短时间内返回搜索结果的原因。
随着网页信息十分庞大,关键字数量也很大,因此一张索引表的储存空间也是巨大的。所以索引表一般会通过分布式存储的方式储存到多个服务器上。
网络爬虫
搜索引擎不仅需要返回符合要求的网页,还需要尽可能返回用户想要的网页。这就是网页排名问题。
搜索引擎需要优先返回价值高的网页,这需要网络爬虫来完成。
网络爬虫的思想是:访问一个网页时,同时访问该网页上的超链接,然后不断重复。这便是数学中图论的思想,将每个网页看成一个顶点,每条超链接看做一条边,然后进行搜索。网络爬虫同时运用了深度优先搜索和广度优先搜索。
Google 的 PageRank 算法
若有多个网页中都有该网页的超链接,则表明该网页的价值大。而且一个网站的价值越大,则它的超链接网站的含金量就越大。所以一个网站的价值等于所有存在该网站超链接的网站的权重之和。计算时首先使得所有网站权重相同,经过一轮运算后,使用第一次运算的结果计算权重进行第二次运算,这样得到的结果就比较合理了。
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!