网页搜集系统俗称网页爬虫,是被广泛研究的领域。网页搜集系统面对是海量数据处理,在系统的性能和规模的可扩展性有较高的要求。[8]对Google搜索引擎的实现作了细致的说明;[11]设计了一个扩展性较强的搜集系统;[14]讨论了高性能分布式搜索系统的实现。这些搜集系统面向的是整个web,应用于blog的搜集时显得过于庞大臃肿。
对blog的挖掘也是目前计算机科学中的热门研究领域, [3,4,6]致力于blogsphere的社区发现;[7]对blogsphere的链接的结构和相关性质进行了分析;[24]针对Persian的blogs做了一些实验,给出了Persian blogs的一些统计数据。这些文章针对blog站点链接关系进行分析,挖掘blogsphere的特殊性质,但是对这些性质对blog搜索的影响没有什么分析。
在对blogsphere进行的研究中,也有很多文章涉及到blog的搜集或者blog垂直搜索引擎。[23]提出了一个偏向主题抽取的blog搜索框架;[25]提出如何用各种开源软件搭建blog搜索平台;[1]设计了一个提供多种搜索服务的blog搜索引擎。这些文章中或多或少的提到blog的搜集,但更多的是作为研究工作的基础,并没有将搜集系统的设计作为主要关注点。[10]设计了一个blog搜集系统,但只给出了系统架构,具体实现没有作详细的讨论。
我们也注意到很多文章[12,15]提出设计通用的垂直搜索引擎的搜集系统。它们更多的是从搜集算法层面进行研究,试图发现领域相关的信息,对于搜集系统本身并没有讨论。而且在具体的应用领域有其具体的问题,任何通用系统必须经过“裁剪”才能在具体领域有实用价值。
目前已经有很多商业的blog搜索引擎提供服务,国内有Yodao[26]、Baidu[27]等等,国外有Blogpulse[19]、 Technorati[20]、Google Blog Search[21]等等。由于商业保密的原因,我们不能得知它们的具体实现。
1.5 本文组织
本文第2章主要讨论搜索引擎搜集子系统的通用架构和面向blog的垂直搜索引擎系统的搜集模块面临的问题。我们首先简单介绍了搜索引擎系统的基本架构,在此基础上我们介绍了blog垂直搜索引擎的工作流程和系统架构,最后我们分析了blog搜集系统面临的主要问题和设计要点。
第3章,详细阐述了blog搜集子系统的设计和实现。针对第二章提出的各个设计要点,说明我们的设计方案,主要针对blog的识别,DNS解析,Frontier,旧blog过滤,Post搜集等模块的设计详细讨论。
第4章, 分析搜集到的100多万个blog站点数据。我们分析了链接的局部性,blog在BSP站点分布的不均衡, JavaScript对搜集的影响,抓取层次和blog站点入度的关系等等性质,给出数据报告和图表,并分析这些性质对我们的搜集系统的影响。
第5章,给出本文总结和我们下一步的工作展望。