搜索引擎原理基础

——Googlebots 日夜不停的在互联网上为Google的索引抓取内容, 从不停息。

现在互联网上存在的网页数量是数以百亿千亿计的,这些网站存储在不同的服务器上, 分布在世界各地的数据中心和机房。 对于搜索引擎来说,要抓取互联网上所有的网页几乎是不可能的,从目前公布的数据来 看,容量大的搜索引擎也不过是抓取了整个网页数量的百分之四十左右。一方面原因是抓 取技术存在瓶颈,无法遍历所有网页,有许多网页无法从其它网页的链接中找到;另一个原 因是存储技术和处理技术的问题,如果按照每个页面平均大小 20K 计算(包含图片),100 亿网页的容量是 100×2000G 字节,即使能够存储,下载也存在问题(按照一台机器每秒下 载 20K 计算,需要 340 台机器不停的下载一年时间,才能把所有网页下载完毕)。同时,由 于数据量太大,在提供搜索时也会有效率方面的影响。因此,许多搜索引擎的网络蜘蛛只是 抓取那些重要的网页,而评价重要性的主要依据是某个网页的链接深度。 有人会认为搜索引擎在接收到搜索请求时,会实时地从全球所有的服务器上查询信息, 并把查询结果展示在用户面前,这其实是一种误解。如果搜索引擎是这样工作的,那么查询 一条信息可能要等上好几年才能得到搜索结果,这还不包括期间网页发生的变化。 实际上,搜索引擎会预先去拜访大量的网站,并把这些网页的部分信息预先存储在自己 的服务器上,这样,当用户搜索的时候,其实是在搜索引擎自己的服务器中进行查询,就像 我们在自己的电脑中查询文件一样。 搜索引擎是非常复杂的技术,但是其基本原理并不复杂,其基本技术包括抓取、索引、 排序。

一、抓取
搜索引擎首先会派出一种被称作“蜘蛛”或者是“机器人”的软件,根据一定规则扫描 存在于互联网上的网站,并沿着网页上的链接从一个网页到另一个网页,从一个网站到另一 个网站。为保证采集的资料新,它还会回访已抓取过的网页。

谷歌搜索引擎抓取
谷歌搜索引擎抓取

二、索引
由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息(包括网页所在 URL、编码类型、页面内容包含的所有关键词、关键词位置、生成时间、大小、与其它网页 的链接关系等),根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面文字 中及超链中每一个关键词的相关度(或重要性),然后用这些相关信息建立网页索引数据库。

三、排序
当用户输入关键词搜索后,由搜索系统程序从网页索引数据库中找到符合该关键词的所 有相关网页。因为所有相关网页针对该关键词的相关度早已算好,所以只需按照现成的相关 度数值排序,相关度越高,排名越靠前。 后,由检索器将搜索结果的链接地址和页面内容摘要等内容组织起来,返回给用户。