Wednesday, November 22, 2006

Google的搜索机制

Google的搜索机制是:几个分布的Crawler(自动搜索软件)同时工作——在网上“爬行”,URL服务器负责向Crawler提供URL的列表。Crawler所找到的网页被送到存储服务器中。存储服务器于是把这些网页压缩后存入一个知识库(repository)中。每个网页都有一个关联ID——doc ID,当一个新的URL从一个网页中解析出来时,就被分配一个doc ID。索引库和排序器负责建立索引,索引库从知识库中读取记录,将文档解压并进行解析。每个文档就转换成一组词的出现状况,称为hits。hits记录了词、词在文档中的位置、字体大小、大小写等。索引库把这些hit又分成一组“barrels”,产生经过部分排序后的索引。索引库同时分析网页中所有的链接,并将重要信息存在Anchors文档中,该这个文档包含了足够信息,可以用来判断一个链接被链入或链出的结点信息。 URL分解器(URL Resolver)阅读Anchors文档,并把相对的URL转换成绝对的URLs,并生成doc ID,它进一步为Anchor文本编制索引,并与Anchor所指向的doc ID建立关联。同时,它还产生由doc ID对(pairs of doc ID)所形成的数据库。这个链接数据库(Links)用于计算所有文档的页面等级(Pagerank)。 排序器会读取barrels,并根据词的ID号(word ID)列表来生成倒排挡。一个名DumpLexicon的程序则把上面的列表和由索引库产生的一个新的词表结合起来产生另一个新的词表供搜索器(Searcher)使用。这个搜索器就是利用一个Web服务器,并使用由DumpLexicon所生成的词表,并利用上述倒排挡以及页面等级来回答用户的提问。 从Google的体系结构、搜索原理中可以看到,其关键是:利用URL分解器获得Links信息,并且运用一定的算法得出页面等级的信息,这正是网络结构挖掘技术。

No comments: