[硕士论文] 垂直搜索引擎的设计与实现
西北工业大学硕士学位论文第二章垂直搜索引擎的结构docID。
建立索引的任务则交给索引器和排序器来完成。Indexer依次从Repository
中取出文档,对文档解压缩,然后对文档进行解析。随后文档被解析为一组命中。
在Google中,命中是一种数据结构,用来记录单词在文档中每一次出现的信息。
在命中结构中,记录了每个词、词在页面中的位置、大小写、字体相对大小写等
信息。这样,每个词都有很多不同的命中,这些命中的组合又称为该词的命中列
表。索引器把这些命中再写入一组桶中,并建立一个部分排序的前序索引。索引
器还同时把网页中所有的链接的重要信息解析出来,并记录到一个叫做Anchors的文件中。该文件包含了足够多的信息,从中可以查询出每一个链接的来源、指
向以及该链接的文本。
URLServer卜———叫Crawler卜———叫StoreServe
RLResolveAnchorsReposit
Links
DocIndexllSorter
图2—3Google结构
URLResolver服务器负责从Anchors文件中读取出这些链接,把相对路径
转换为绝对路径,再转换为相应的docID。通过docID的关联,锚文件的信息也
被加入到前序索引的anchorhit结构中。URLResolver同时创建了一个Links数据库,用来存放两两相互对应的docID。Links数据库被用来计算所有文档的
PageRank。
接着排序器接管这些桶。排序器的主要任务是按照WordID重新进行排序。
从而为这些桶生成一个倒排索引。这个操作是在每个桶中执行的,所以只需用很
少的临时空间。排序器还建立了一个wordlD列表。列表中同时记录了该wordID在倒排索引中的偏移量大小。有一个叫做DumpLexicon的工具,用来把wordlD和由索引器产生的词典相结合,并产生一个新的词典。这个新的词典被用在最终8