搜索引擎的工作原理

作者:陈峥嵘
日期:2011/8/13 10:38:48

1、从互联网上抓取网页

搜索引擎能获得海量信息,主要是使用爬行器(crawler)或爬行蜘蛛(spider)来完成的。爬行器是用计算机语言编制的程序,能在互联网中时刻不停地访问各个网站,将访问的每个网页信息以最快的速度带回自己的大本营。百度一次最多能抓走120KB的信息,谷歌能带走100KB左右的信息。各个搜索引擎对自己的爬行器都有不同的称谓:百度的叫 Baiduspider;Google的叫Googlebot;MSN的叫MSNbot。利用能够从互联网上自动收集网页的网络蜘蛛程序,自动访问互联网,并沿着任何网页中的所有URL爬到其他网页,然后通过每个网页的超级链接进入下一个页面,这样不断继续下去……,并把爬过的所有网页都收集到网页数据库中。

搜索引擎并不会将整个网页的信息全部取走,有些网页信息量很大时,搜索引擎只会取得每个网页最有价值的信息,如:标题、描述、关键词等一个页面的头部信息,而且也只会跟着少量的链接走。

2、建立索引数据库

爬行器抓取的信息先存放在数据仓库里,此时的数据杂乱无章地堆放在一起,因此,也不会出现在搜索结果中。还需要由索引系统程序对其进行分析,提取相关网页信息,包括网页所在URL、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其他网页的链接关系等,进行分门别类整理,删除那些经过分析发现无效的信息,之后进行压缩,编类到索引中。只有编辑到索引中的信息,才能出现在搜索结果中。搜索引擎根据一定的相关度算法进行大量复杂计算,得到每一个网页针对页面内容及超链接中每个关键词的相关度(或重要性),最后把这些信息形成索引数据库。

3、在索引数据库中搜索

搜索引擎系统继续将索引数据库中的信息进行“链接信息提取”,把链接信息(包括锚文本、链接本身等信息)送入“链接数据库”,为“网页评级”提供依据。“用户”通过将查询请求(提供关键词)给“查询服务器”,服务器在“索引数据库”中进行相关网页的查找。

4、对搜索结果进行整理排序

所有相关网页针对输入关键词的相关信息在索引库中都有记录,只需综合相关信息和网页级别形成相关度数值,然后进行排序,相关度越高,排名越靠前。最后由页面生成系统将搜索结果的链接地址和页面内容摘要等信息组织起来,按照一定顺序返回给用户。

搜索引擎的爬行器会定期重新访问所有网页(各搜索引擎的周期不同,可能是几天、几周或几个月),也会以不同频率更新网页索引数据库,及时反映网页内容的更新情况,增加新的网页信息,删除死链接,并根据网页内容和链接关系的变化重新排序。这些工作最终从用户的查询结果中体现出来。

由于各搜索引擎的能力和偏好不同,所抓取的网页内容和排序算法也就各不相同。大型搜索引擎的数据库储存了互联网上几亿至几十亿的网页索引,数据量达到几千G甚至几万G。即使最大的搜索引擎建立超过20亿网页的索引数据库,也不过互联网上普通网页数量的30%还要少一些,不同搜索引擎之间的网页数据重叠率一般不超过70%。我们使用不同搜索引擎的重要原因,就是因为它们能分别搜索到不同的内容。互联网上还有更大量的信息,是搜索引擎无法抓取、索引的,也是我们无法用搜索引擎搜索到的。

分享