开源搜索引擎的比较 收藏
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
开源搜索引擎的比较收藏
A Comparison of Open Source Search Engines
Christian Middleton, Ricardo Baeza-Yates
作者:
Christian Middleton
/in/cmiddlet
Hi5的高级工程师。
Ricardo Baeza-Yates
/Ricardo_Baeza-Yates
Yahoo的高级研究人员。
翻译:
史春奇,
搜索工程师,
中科院计算所毕业,
chunqi.shi@
原文:/WRG/dctos/Middleton-Baeza.pdf
目录
开源搜索引擎的比较 (1)
A Comparison of Open Source Search Engines. 1
目录 (1)
第1章简介 (2)
第2章背景 (3)
2.1 文档收集 (4)
2.1.1网页抓取 (4)
2.1.2文本检索大会TREC. 4
2.2 索引 (5)
2.3 查询和排序 (5)
2.4 检索评估 (6)
第3章搜索引擎 (7)
3.1 特征 (8)
3.2 评估 (9)
第4章比较方法 (11)
4.1 文档收集 (11)
4.2 测试比较 (12)
4.3引擎安装 (12)
第5章测试 (12)
5.1 索引 (12)
5.1.1 TREC-4数据集的索引测试 (12)
5.1.2 索引WT10g的分组。 (14)
5.2 查询 (15)
5.2.1 TREC-4数据集的查询实验 (17)
5.2.2 准确率和召回率的比较 (19)
5.3整体评估 (19)
第6章结论 (20)
参考书目 (21)
第1 章简介
随着互联网信息量的激增,为用户提供网上相关信息的检索成为迫切需求。而当你准备在网站上提供这种检索服务的时候,你可以选择,要么利用商业搜索引擎,要么选择开源搜索引擎。对于很多站点,采用商业搜索引擎,可能没预期的那么便捷,你得花钱,而且呀,你可能没大站点那样受人家重视。另一方面,开源搜索引擎也能提供商业搜索引擎的同类功能(部分能够处理大数据量),同时拥有开源理念带来的好处:不花钱,可以更主动地来维护软件,也通过二次开发来满足个人的需求。
现今,可以选择的开源产品很多,而要决定是采用哪个开源产品,就必须认真考虑每个开源产品的不同的特性。对这些搜索引擎划分的依据可以是开发的编程语言,索引文件的存储(倒排文件,数据库,还是其他文件格式),查询的能力(布尔运算,模糊查询,词根替换等等),排序策略,支持索引的文件类型,在线索引能力和增量索引的能力。其他值得考虑的重要因素是项目的最后更新日期,当前版本和项目的活跃度。这些因素之所以重要是因为,如果一个开源搜索引擎在近期没有更新的话,那么要满足现在的网站的话,可能存在很多的缺陷和问题。利用这些特性就可以给出一个大体上的划分,同时能够减少待选的开源产品的数目。最后,考虑不同负载的时候搜索引擎的性能,当信息量增加时,性能的如何降低的,这些也非常重要。此时,就要分析数据量和索引时间的对比情况,索引阶段所用的资源,和检索阶段的性能。
就目前我们了解的情况,本文的工作是首创,比较了17个主流搜索引擎,并且在不同的文档集合和多种查询类型的情况下,比较了索引和查询的性能。本文的目的是告诉人们遇到某种搜索需求的时候,该如何选择是最合适的开源搜索引擎。
第二章,介绍信息检索的基础概念,第三章,描述一下本文的搜索引擎,第四章,测试实验的实现思路,第五章前两节,给出实验的结果。第五章最后一节,对结果进行分析。最后,第六章进行总结。
第2 章背景
信息检索(IR)是一个较广的领域,一般符合如下定义:是对信息项进行数据表示,存储,组织和访问的领域。
作为一个较广的领域,信息检索必须要能够在对信息进行处理后,用户就能够容易地访问到他们关注的信息。另一个也不失一般性的定义,描述如下:信息检索是从大量数据集合(通常是存放在本地服务器或者互联网上)中,查找满足需求的非结构化(文本)数据(文档)集。
核心思想是从可以获取到的数据中,检索出具有相关性的部分来满足用户的信息需求。为了实现这个目的,信息检索(IR)系统由几个相互关联的模块组成(图2.1)。通常这些模块含有三个方面的:索引,查找和排序。
图2.1:信息检索过程
索引:负责表示和组织所有信息,实现高效的信息访问。
查询:从索引中抽出满足用户需求的信息。
排序:尽管这是非必须的步骤,但对检索来说非常重要,启示式地对检索结果尽可能按照满足用户需求的方式排序。
2.1 文档收集
要有信息可以检索的话,就要先收集信息,作为索引的入口数据。待收集文档可以是任何类型的数据,只要能从中抽取出信息来。这就有很多场景了,要具体看检索系统的应用背景了。
2.1.1 网页抓取
在网页搜索的场景中,网络爬虫是相当必要的。简单来讲,爬虫是能够在网站间游走,并且将访问过的页面下载保存下来。网络爬虫种类很多,有些是商业的,也有开源的。由于网页是海量的,所以为了平衡新页面的抓取和已抓取页面的更新,会采用各种的抓取算法。同样的,也有必要考虑被抓网站的带宽情况,避免把对方网站抓瘫痪了。
2.1.2 文本检索大会TREC
也有已经生成好的文档集合是被用来做学术研究的。例如,文本检索大会(TREC)就准备了大小和类型不同的好几类文档集合,每个都是为不同任务设计的。根据对文档不同的研究目的,研究被分成各种项目类型。例如2007 TREC的项目类型有:
博客组:目的是展现博客环境中的信息查找的行为规律。
企业组:分析企业搜索。满足用户查找企业数据来完成某些任务。
基因组:在特定领域的检索研究(基因数据)。
垃圾组:对已有的和推荐的垃圾过滤方法进行研究。
利用这些文档集合,TREC也作为一个标准的数据集实例,被各个小组采用各种方法去处理,然后基于这相同的实例进行分析得到的不同结果,来讨论和比较不同检索方法。所以TREC也提供一组检索任务和查询结果相关性的判断。
Table 2.1,倒排索引举例,对每个出现的词,都保存了在文档中的位置列表
这样才使得研究不同信息检索(IR)系统的准确率和召回率成为可能。
2.2 索引
要实现对大文档集合的高效率的检索,就需要重新组织数据,存储到特定的设计好的数据结构中。这就是索引,它使得快速检索文档集合变得容易,简单来说,就是减少两两比