2.2.1 爬行与索引
为了提供尽可能好的结果,搜索引擎试图发现万维网上所有公开的网页,然后显示与用户搜索查询最匹配的结果。这一过程的第一步是Web爬行。搜索引擎从一组众所周知的高质量网站开始,然后访问这些网站每个页面上的链接,以发现其他网页。
Web的链接结构将所有公共的网页联系在一起。通过链接,搜索引擎的自动机器人(称作爬行器或者蜘蛛)能够接触到数以亿计相互连接的文档。
在图2-10中,你可以看到美国政府官方网站的主页http://www.usa.gov,页面上的链接在图2-10上标出,对这个页面的爬行从加载网页开始,然后分析其内容,接着查看它所链接的其他网页。
然后,搜索引擎加载其他页面并分析其内容。这一个过程不断重复直到爬行过程完成。由于Web巨大而复杂,因此爬行过程的复杂度极高。
搜索引擎并不是每天都试图爬行整个Web.实际上,搜索引擎可以发现有些页面的重要性不足以出现在搜索引擎中,从而不对这些页面进行爬行。下一节将讨论重要性所起的作用。
一旦搜索引擎在爬行中读取一个页面,其下一步工作就是解析它们的代码,并将页面中精选的部分存放在大型磁盘阵列里,以便在查询时调用。这一过程的第一步是建立关键词词典。关键词词典是分类搜索引擎爬行得来的每个页面上所有重要关键词的大型数据库。其他一些数据(如页面链接地图、链接的锚文本、链接是否被当作广告等)也记录在内。存储瞬间内就能访问到的数千亿(甚至万亿)个网页的信息是极其繁重的任务,为此搜索引擎建立了许多大型的数据中心。
构建搜索引擎的关键概念之一是确定从Web的哪个位置开始爬行。尽管从理论上讲,可以从许多不同的地方开始,但是最理想的情况还是从一组信任的网站开始爬行。
从已知可信的一组网站开始,搜索引擎就能度量通过爬行过程找到的其他网站的可信度。7.1节将更详细地讨论可信度在搜索算法中所起的作用。