现在互联网上存在的网页数量是数以百亿千亿计的,这些网站存储在不同的服务器上,
分布在世界各地的数据中心和机房。
对于搜索引擎来说,要抓取互联网上所有的网页几乎是不可能的,从目前公布的数据
来看,容量最大的搜索引擎也不过是抓取了整个网页数量的百分之四十左右。一方面原因是
抓取技术存在瓶颈,无法遍历所有网页,有许多网页无法从其它网页的链接中找到;另一个
原因是存储技术和处理技术的问题,如果按照每个页面平均大小 20K 计算(包含图片),
100 亿网页的容量是 100×2000G 字节,即使能够存储,下载也存在问题(按照一台机器每
秒下载 20K 计算,需要 340 台机器不停的下载一年时间,才能把所有网页下载完毕)。同
时,由于数据量太大,在提供搜索时也会有效率方面的影响。因此,许多搜索引擎的网络蜘
蛛只是抓取那些重要的网页,而评价重要性的主要依据是某个网页的链接深度。
有人会认为搜索引擎在接收到搜索请求时,会实时地从全球所有的服务器上查询信息,
并把查询结果展示在用户面前,这其实是一种误解。如果搜索引擎是这样工作的,那么查询
一条信息可能要等上好几年才能得到搜索结果,这还不包括期间网页发生的变化。
实际上,搜索引擎会预先去拜访大量的网站,并把这些网页的部分信息预先存储在自
己的服务器上,这样,当用户搜索的时候,其实是在搜索引擎自己的服务器中进行查询,就
像我们在自己的电脑中查询文件一样。
搜索引擎是非常复杂的技术,但是其基本原理并不复杂,其基本技术包括抓取、索引、排序。
一、抓取
搜索引擎首先会派出一种被称作“蜘蛛”或者是“机器人”的软件,根据一定规则扫
描存在于互联网上的网站,并沿着网页上的链接从一个网页到另一个网页,从一个网站到另
一个网站。为保证采集的资料最新,它还会回访已抓取过的网页。
二、索引
由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息(包括网页所在
URL、编码类型、页面内容包含的所有关键词、关键词位置、生成时间、大小、与其它网页
的链接关系等),根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面文字
中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息建立网页索引数据库。
三、排序
当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的
所有相关网页。因为所有相关网页针对该关键词的相关度早已算好,所以只需按照现成的相
关度数值排序,相关度越高,排名越靠前。