搜索引擎技术简介及一些开源搜索引擎

1.引言

因特网的发展形成了一个巨大的全球化信息空间,方便了信息的收集和获取, 并且信息仍以惊人的速度增长。Web信 息的大容量、异构性、分布性和动态性给信息检索带来了挑战,如何快速获取需要的信息是用户面临的重大问题。搜索引擎技术可用来解决这一问题。搜索引擎以一 定的策略在互联网中搜集、发现信息,对信息进行理解、提取、组织和处理,并为用户提供检索服务,从而起到信息导航的作用。搜索引擎提供的导航服务已成为互 联网上非常重要的网络服务。同时,高性能的Web信息检索技术也是充分利用Web资源发展电子商务、远程教学、数字化图书馆等方面应用的重要基础。目前,搜索引擎技术已成为计算机工业界和学术界争相研究、开发的对象,并逐渐体现其经济价值。

搜索引擎的性能主要取决于:索引数据库的容量、存放内容、以及更新速度,搜索速度,用户界面的友好程度以及是否易用等。搜索引擎是以传统信息检索技术为基础,利用其索引模型、匹配策略等方面的技术成果并针对Web资 源的特点发展起来的信息检索技术,涉及多领域的理论和技术:数字图书馆、数据库、信息检索、信息提取、人工智能、机器学习、自然语言处理、计算机语言学、 统计数据分析、数据挖掘、计算机网络、分布式处理等,具有综合性和挑战性。本文对搜索引擎技术进行了系统的介绍和分析,以工作方式对搜索引擎进行分类,介 绍搜索引擎各组成部分的相关研究和关键技术(搜索器策略、检索策略、搜索结果处理、信息检索Agent、多媒体搜索引擎等),并对未来搜索引擎的主要发展方向进行了展望。

 

2.搜索引擎的分类

按照信息搜集方法、服务提供方式和系统结构的不同,搜索引擎系统可以分为不同的类别,下面介绍按照搜索引擎工作机制对其进行分类。搜索引擎作为用户层和Web信息层之间的中间层,内部结构有所不同。如图1所示,用户可以直接从机器人搜索引擎或者目录式搜索进行检索,或者通过元搜索引擎进行检索,或者通过信息检索Agent进行检索。由此搜索引擎系统可以分为以下类别。

 

1 搜索引擎工作机制分类

1)机器人搜索引擎:由一个机器人(Robot)程序以某种策略自动地在互联网中搜集和发现信息,下载到本地文档库对文档内容进行自动分析,由索引器为搜集到的信息建立索引,对用户的查询输入由检索器检索索引库,最后对查询结果进行处理,返回给用户。其优点是具有庞大的全文索引数据库、信息量大、更新及时、毋需人工干预,适用于检索难以查找的信息或者一些比较模糊的主题,缺点是返回信息过多,有很多无关信息,用户必须从结果中进行筛选。其代表有:AltaVistaNorthern LightExciteInfoseekInktomiFASTLycosGoogle;国内代表为:“天网”、悠游、OpenFind等。

2)目录式搜索引擎:由Web站点作者主动提交,也可用人工方式或半自动方式搜集信息,由人工对Web站点进行评价、分类、形成摘要,并将信息置于事先确定的分类框架中,使Web信息资源按照树型作主题分类组织,从树根逐层向下形成从一般到特殊的各级分类,叶节点则包括指向Web信息资源的链接。因为目录分类的导向作用,用户可通过浏览目录中的分类来缩小、指定搜索范围,有助于逐步缩小主体或者查找某个主题的常见的、质量较高的信息,提高了检索的准确性。但是由于人工方式限制了这类搜索引擎的更新速度和容量。其代表是:YahooLookSmartOpen DirectoryGo Guide等。

目录式提供的是对分类以及Web信息描述的索引,与机器人搜索引擎提供的对文档内容的全文索引是不同的。由于机器人搜索引擎和目录式搜索引擎各有所长,因此有的系统融合结合两者的技术优势构成更高性能的搜索引擎如LookSmartYahoo等。通常我们把机器人搜索引擎和目录式搜索引擎统称为搜索引擎。

3)元搜索引擎: 对用户的查询请求进行预处理,分别转换为底层搜索引擎能够处理的格式,再向多个搜索引擎递交,然后对综合各种搜索引擎的检索结果进行组合、排除重复、重新 排序等处理后,作为自己的结果返回给用户。其优点是返回结果的信息量更大、更全,缺点是不能够充分使用所选用搜索引擎的功能,往往用户需要做更多的筛选。 应用代表有WebCrawlerInfoMarket

4)信息检索Agent: 信息检索Agent是智能化的程序,能够学习用户的需求,并利用搜索引擎等系统提供的现有服务来检索用户所需要的信息推荐给用户,具有智能性、主动性、协作性等特点,我们将在第4节详细介绍。其代表有Carnegie Melon大学开发的WebWatcher[2],Washington大学开发的ShopBot[3]Stanfor大学开发的Fab[4]等。

搜索引擎的其他分类方法还有:按照自动化程度分为人工与自动引擎;按照是否有智能分智能与非智能引擎;按照搜索内容分FTP搜索引擎、文本搜索引擎、语音搜索引擎、图形搜索引擎、视频搜索引擎等。

 

3.搜索引擎技术分析

搜索引擎以Web信息为处理对象,向元搜索引擎和信息检索Agent提供服务。一般搜索引擎由搜索器(Robot)、分析器、索引器、检索器和用户接口等五个部分组成,如图2所示。下面我们就各个部分的技术进行分析。

 

2 搜索引擎组成结构

 

31搜索器

搜索器是一个机器人程序Robot (也称为Spidercrawlerwander),自动地在互联网中搜集和发现信息,对Web进行遍历并下载到本地文档库。由于Web信息的大容量、分布性和动态性,保持全面而又最新的资料收集是影响搜索引擎性能表现的重要方面。为提高Robot工作效率,其实现常用分布式、并行计算技术,主要有2个方面的工作重点[5]:第一是采用较好的搜索策略;第二是设计高性能系统结构以支持每秒下载大量网页同时确保系统具有较好的管理性和健壮性,能够应付各种服务器的突发事故等。

目前对第一方面已进行了较为广泛的研究,相关的工作包括:优先搜索重要网页的策略[6][7];基于超链接的结构分析[8][9]和机器学习技术[10][11] 对特殊题目或特殊类型网页的搜索;与Web页面URL有关的启发式规则研究[12],以寻找个人主页、位置变动的Web页面的新位置、与给定页面集合相关的其它页面等;根据页面更新历史优化网页集合,保持最新页面集的技术[13][14];按照时间表控制搜索活动[15];在网站地图中随机走步进行网页取样搜索的研究[16][17][18];搜索隐藏网页的研究[19]等。隐藏网页Hidden Web(也称Deep Web, Federated Facts and Figures)是指许多通过Web页获取的、存放于数据库中、只能通过填入正确的查询或者填入相应的网页输入框而获得的信息。一般来说,主要搜集策略可以分为两种:

1)系统中维护一个超链队列(或者堆栈),其中包含起始URL, 从起始URL集合开始采用某种搜索顺序遍历并下载相应的页面,同时从中抽取出新的超链接加入到队列中。上述过程不断重复直到队列为空。搜索顺序有深度优先搜索,宽度优先搜索、启发式搜索等。

2)将Web空间按照域名、IP地址或国家域名划分,每个搜索器负责一个子空间的穷尽搜索。

第二方面的研究目的是设计高性能系统结构,以便在有限时间内尽量多的下载网页,侧重于考察系统的I/O和网络性能以及健壮性、可管理性等。多数系统致力于减少需下载的网页数目或者提高已下载网页的利用率。DEC/CompaqHeydonNajork研发的Mercator crawler[20]应用于AltaVista,利用并行计算技术、高速缓冲寄存器和高速硬盘解决I/O问题来提高效率,数据可以直接分析而不需写入硬盘;第一个版本的google crawler[21]采用异步I/O进行下载,对索引内容的分析与搜索下载系统绑定在一起,因此下载速度受到建立索引的速度影响;Internet Archive crawler [22]用强大的过滤器来辨认已经找到的网页,允许在内存中完成组织,但同时导致了一些页面的遗漏。文献[5]提出一个高效的分布式web crawler(即引擎蜘蛛)提高I/O和网络性能。

搜索引擎的自动信息搜集功能工作方式分为两种。一种是定期搜索,即每隔一段时间,搜索引擎主动派出机器人程序进行检索。另一种是提交网站搜索,网站拥有者主动向搜索引擎提交网址,搜索引擎在一定时间内向此URL网站派出机器人程序,扫描网站并将有关信息存入数据库,以备用户查询。由于站点的不断更新以及新站点的加入,Robot需要定时更新已下载的信息以保证搜索结果的正确性和完整性。各个搜索引擎采取的定时更新周期长短各不相同,但都需要平衡Robot工作负担以及搜索引擎搜索性能表现。

搜索器搜集的信息类型多种多样,包括HTMLXMLNewsgroup文章、FTP文件、字处理文档、多媒体信息以及隐藏网页等。不同的搜索引擎搜索的内容不尽相同:有的着重站点搜索;而有的搜索可能包括Gropher、新闻组、E-MAIL等。

 

32分析器

分析器对本地文档库进行分析以便用于索引。文档分析技术包括分词、过滤和转换等。

一般“词”能够表达 完整的语义对象,所以通常选用词作为文本特征的元数据。在分词时,大部分系统从全文中抽取词条,也有部分系统只从文档的某些部分(如标题等)抽取词条。由 于中文的基元是字而不是词,句子中各词语间没有固定的分隔符,汉语语义及结构上的复杂性和多边性给中文分词带来极大困难。文献[23]给出了汉语分词问题的一般描述。目前汉语分词主要有2大类方法[24]:基于词典与规则的方法和基于统计的方法。前者应用词典匹配、汉语词法或其他汉语语言知识进行分词,如最大匹配法(Maximum Matching[25]、最小分词方法[26]等,其性能依赖于词典的完备性、规则的一致性。后者基于字和词的统计信息,如相邻字间互信息、词频及相应的贡献信息等应用于分词。

由于存在很多无用词,分词后通常要使用禁用词表(stop list)来去除出现频率很高的词条,如过滤掉无义的频繁出现词:anthe of 、的。

另外需要对词条进行单/复数转换、词缀去除(stemming)、同义词转换(conflation)等工作,如将jumpsjumpedjumper都归结成jump进行索引。

 

33索引器

索引器的功能是理解搜索器所搜索的信息,从中抽取出索引项,将文档表示为一种便于检索的方式并存储在索引数据库中,生成文档库的索引表。

·索引项

索引项有客观索引项和内容索引项两种:客观项与文档的语意内容无关,如作者名、URL、更新时间、长度、链接流行度(Link Popularity)等等;内容索引项是用来反映文档内容的,如关键词及其权重、短语、单字等等。内容索引项又可以分为单 索引项和多索引项(或称短语索引项)两种。单索引项对于英文来讲是英语单词,比较容易提取,因为单词之间有天然的分隔符(空格);对于中文等连续书写的语 言,必须进行词语的切分。

·文档表示

基于自然语言处理和统计数据分析的文本特征表示指的是对从文本中抽取出的元数据(特征项)进行量化,以结构化形式描述文档信息。索引器采用的文档的表示方法有多种,如矢量空间模型(VSM)[27]、布尔模型、概率模型等。其中VSM是近年来应用较多且效果较好的方法之一。

矢量空间模型的基本思想是以矢量来表示文本,把文档看作是由一组正交词条矢量所组成的矢量空间,将文档信息的匹配问题转化为矢量空间中的矢量匹配问题处理。

布尔模型是一种简单的严格匹配向量模型(Exact Match Model),定义了一个二值变量集合来表示文档,这些变量对应于文档中的特征项,文本表示的结果是0-1向 量。检索时,根据用户提交的检索条件是否满足文档表示中的逻辑关系将检索文档分为两个集合:匹配集和非匹配集。因匹配结果的二值性,所以无法在匹配结果集 中进行查询结果的相关性排序,无法区分特征项对文档内容贡献的重要程度,并且逻辑表达式过于严格,往往会因为一个条件未满足而忽略了其他全部特征,造成大 量的漏检。对此,P范数模型克服了简单布尔模型匹配函数过于严格而导致漏检率高的缺陷,它是对布尔模型的扩展。

布尔模型和向量空间模型都将文档表示词条视为相互独立的项,忽略了表示词条间的关联性,而概率模型则考虑了词条、文档间的内在联系,利用其概率相依性进行信息检索。二值独立检索模型(BIR)、概率推理网络都属于概率检索模型。

·索引表

索引表一般使用某种形式的倒排表(Inversion List),由索引项查找相应的文档。即将Web文档集合排序存储的同时,有另外一个排好序的关键词列表,用于存储“关键词==>文章”的映射关系,索引表也可能要记录索引项在文档中出现的位置,以便检索器计算索引项之间的相邻或接近关系,如这样的映射关系索引:[关键词==>出现关键词的文章编号,出现次数(甚至包括位置:起始偏移量,结束偏移量),出现频率]

对文档的分析索引技术还包括了文档分类技术。文档分类是指按照预先定义的主题类别,为文档集合中的每个文档确定一个类别,这样可以通过限制搜索范围来提高文档查找的准确率。文本分类算法很多,常用的有朴素贝叶斯分类算法(Naïve Bayesian classifier)[28]k-最近邻参照分类算法(k-Nearest Neighbor[29]等。

 

34检索器

检索器的功能是根据用户的查询在索引库中找出相关文档,进行文档与查询的相关度评价,返回相关度符合某一阀值的文档集合。

检索器采用的检索方法有以下几种:

·基于关键词的检索:不考虑文档的具体内容而仅判断文档中是否包含被检关键词的方法

·基于概念的检索:由于自然语言中广泛存在同义词和一词多义的现象,用户输入的关键字可能包含多种含义以及有别的同义词,因此引入了基于概念的检索。其方法是对用户查询进行概念/词条扩展,例如从robot”扩展到crawler, spider, wander”等词条,然后转化为关键字检索。概念/词条扩展方法有两种,一种是手工建立词典来存储概念层次集词条之间的交叉联系;一种是使用语法分析、统计等技术从文档集合中自动学习。文献[30]给出了几种构成概念空间、计算词间关系权值的算法,文献[31]提出讨论了利用概念关联来推荐网页提高召回率的技术。

·基于内容的检索:能够根据文档的内容处理类似“检索出属于多媒体类且包含通信内容的文档”等涉及文档内容查询的检索。文献[32]提出检索查询操作符in,用于检索某个题材在某个范围内讨论的内容,如“机器人in 搜索引擎” 表示在题材搜索引擎中讨论机器人的相关内容。

 

35用户接口

用户接口的作用是为用户提供可视化的查询输入和结果输出界面、提供用户相关性反馈机制。用户接口的设计和实现使用人机交互的理论和方法,以充分适应人类的思维习惯。

用户输入接口可以分为简单接口和复杂接口两种。简单接口只提供用户输入查询串的文本框;复杂接口可以让用户对查询进行限制,如逻辑运算(与、或、非)、相近关系(相邻、NEAR)、域名范围(如.edu.com)、出现位置(如标题、内容)、信息时间、长度等等。目前一些公司和机构正在考虑制定查询选项的标准。

在输出界面中,搜索引擎将检索结果展现为一个线性的文档列表,其中包含了文档的标题、摘要、所在URL等信息。用户需要逐个浏览以寻找出所需的文档。为了提高检索效率,降低用户浏览列表中文档的工作量,多数搜索引擎对搜索结果列表进行一定的排序,以便使较符合用户查询目标的文档出现在列表的前面。关于搜索结果处理的相关技术将在3.6小节中介绍。

 

36搜索结果处理

用 户在搜索引擎上进行信息查询时,注重结果是否和自己的需求吻合,而不十分关注返回结果的数量。全文检索已是一个很成熟的技术,它能够解决对网页细节的检索 问题。从理论上说,只要网页上出现了某个关键词,就能够使用全文检索用关键词匹配把该网页查出来,但是这又导致了它的缺陷——返回的信息太多。搜索引擎通常会对一个查询返回大量的结果列表,混合着相关文档和不相关文档,用户不得不在结果中筛选,增加了用户的工作量。为解决查询结果过多的现象,多数搜索引擎都对查询结果进行一定的处理,以提高检索结果的准确率。

361.文档摘要

搜索引擎向用户返回 结果时,通常需要给出文档的摘要,这是文档总结技术的应用。目前,大部分搜索引擎采用的方法是简单的截取文档的前几行,显然有很大缺陷。有很多种摘要算 法,但关键技术都采用词性标注,进行语义分析;用统计方法提取高频词(去除停用词之后),以确定摘要。有的算法对开始句和结束句中出现的短语给予较高的权 重。有的算法通过寻找关键短语,确定重要句子如结论句等。文献[33]提出了使用中心文档来代表文档集合,使用中心词汇来表示文档的方法,并给出了求取中心文档和中心词汇的算法

362.检索结果排序

对 海量数据进行检索时,那些被排在一千位之外的信息,被读到的机会几乎为零。这个问题在情报检索领域已被研究多年,而“按照目标词语出现的次数和频率排序” 是该领域多年以来形成的惯性思维,但这种思路不完全适合于网页的排序。因为互联网检索还有一个更本质的因素:超链接。目前的排序方法主要有以下两种。

·基于内容的相关度排序:考虑用户所查询的词条在文档中的出现情况,包括:词条频率、逆文档频率、词条位置等因素。通过使用相关度反馈机制,使用户告诉搜索引擎哪些文档和自己的需求相关(及其相关的程度),通过多次交互逐步求精等方法了解用户的真正意图。

·基于超链的相关度排序:一个页面被其它站点引用的次数基本上反映了该页面的受欢迎程度(重要性),超链中的标记文本(anchor)对链宿页面也起到了概括作用。因此基于超链的相关度排序可以作为基于内容方法的补充。Stanford大学研究的PageRank算法[34],作为核心技术应用于Google中,PageRank不仅仅考虑Web网站上的标题或文本,还考虑了与之相连接的其他网站,通过为Web页面构造引用图,并综合考虑页面的被引用次数,以及链源页面的重要性来判断链宿页面的重要性,将“重要性”的概念引入到搜索中,能够查询于用户请求相关的“权威”页面。此外,Google通过分析超链中包含的文本内容,可对链宿页面进行非全文索引,而不需下载和分析实际页面,扩大了索引数据库的覆盖度。

363.检索结果的联机聚类

Hearst等人[35]的研究表明用户查询相关的文档通常会聚类的比较近,而远离与查询无关的文档。因此可利用聚类技术将结果文档集合分成若干组,同一组的文档内容相似度尽可能地大,组间相似度尽可能的小。这样用户只需考虑相关的组。Etzioni[36]等人的实验结果表明这种方法十分有效。

364推测用户最终目的

通过各种方法获得用户没有在查询语句中表达出来的查询目的,包括使用智能代理跟踪用户检索行为,分析用户模型,通过同类用户的行为记录推荐相关页面;使用相关度反馈机制,通过对查询请求的不断修正以提高系统搜索结果的精确度等。

 

4.信息检索Agent

Agent是人工智能领域发展起来的一个概念,它是指具有感知能力、问题求解能力和与外界进行通信能力的一个实体。智能Agent具有代理性和主动性,它能在用户没有明确具体要求的情况下,根据用户需要,代替用户进行各种复杂的工作,引导、代替用户访问资源。智能Agent可应用于广泛的领域,是人工智能领域近年来研究的一个热点,应用于信息检索领域之后,成为开发智能化、个性化信息检索的重要技术之一,引起了广泛的研究开发兴趣,具有远大的发展前景。

无 论是机器人搜索引擎还是目录式搜索引擎以及其结合体,它们的工作方式都是用户驱动的,即系统只能响应用户显示提出的检索请求。而用户往往难以用简单的关键 词或句子表达自己的真正查询需要,一个词在用户的理解中可能暗含很多系统并不知道的其他含义,不同领域和知识背景的用户理解有所不同,对检索结果的要求也 不尽相同,这些表达困难问题导致了系统的检索困难。同时,这些系统缺乏对Web信息进行监控并在出现用户感兴趣的新信息时主动通知用户的能力。信息检索Agent能较好地解决以上问题,它提供了一种主动的、智能的服务方式,近年来引起学术界和工业界的极大兴趣。

信息检索Agent具有以下特征:

  1. 智能性:信息检索Agent具有丰富的知识和一定的推理能力,能够从用户的检索、浏览等行为学习用户的兴趣,揣测用户的意图,推理用户的需求,并具有从经验中不断学习的能力,适当地进行自我调节,提高处理问题能力,从而为每个用户建立个性化的服务。
  2. 主动性:信息检索Agent能够主动地根据用户的兴趣需求从Web上检索相应的信息,获取最新信息通知用户。工作的执行不需用户干预,系统利用自身的控制机制、知识等自行安排任务规划、执行。
  3. 协作性:能利用搜索引擎等系统提供的服务来检索用户所需信息,通过各种通信协议和其他智能体进行信息交流,并相互协调共同完成复杂的任务,从而最大限度地扩展应用服务系统间的信息交流,提高资源利用率和工作效率。
  4. 移动性:可以在网络上漫游到任何目标主机如远程服务器上,并在服务器上进行信息处理操作,最后将结果集中返回到起点,这样就可以充分利用服务器大量的资源克服客户机处理能力不够等缺点。

信息检索Agent技术在网络信息检索上的发展潜力是巨大的,要真正充分发挥其各项优势,还有待在机器学习、相关度分析等方面进一步研究和改进。在知识经济时代,人们越来越需要个性化信息的提供,作为网络信息检索的前沿技术,信息检索Agent技术必将受广大用户的青睐,发展前景是非常广阔的。

 

5.多媒体搜索引擎

随着互联网的快速普及和网络速度的提高,网络上的多媒体文件越来越多,各大搜索引擎纷纷推出了自己的带图片或媒体文件搜索功能的引擎,国内外的有:LycolsWebshotsComicsDittoFreeFotoIranianAltaVista263Lycos中国等。

 

51图像搜索引擎技术

图像搜索引擎是专门 搜索图形、图像(照片)的搜索引擎,是一种新的搜索引擎服务。由于涉及到图像等多媒体信息,因而图像搜索引擎的数据库组织需要采用不同于网站和网页搜索引 擎的技术,需要充分考虑到多媒体信息的组织和查询问题。现有的搜索引擎搜索功能主要基于以下二种方式得以实现,其工作过程如图3所示

 

3 图像搜索引擎

(1)文本方式,允许用户通过关键字查询[37][38]检索图像,这种方式是文本式搜索引擎的进一步延伸应用。图像的索引来自图像所在Web页的相关描述以及图像文件名、图像的超链接中包含的文本内容等。

2)内容方式(content-based image retrieval: CBIR)通过初始图像例子查询(QBE: query by image example[39][40][38]。 系统列出初始图像例子供用户选择近似目标的图像以决定搜索方向,通过分析选出的图像本身的内容,如色彩、对象等图像内部元素决定搜索方向和评估参数,最终 搜索出结果。在进行搜索时,系统会先进行采样,然后与数据库中的文件相比较,最后将内容相似的媒体文件作为最终搜索结果返回。

IBM Almaden[41]最先采用内容方式技术;其它基于内容方式构成检索的系统有Carlo Tomassi[42] , Rosalind Picard[43]Pictoseek[39]ImageRover[40]等;Webseer[37]通过分析图像内容及图像文本说明来完成索引信息,结合了文字方式和内容方式两种技术。

52音频视频搜索引擎技术

传统对于音频视频的文件搜索,都是基于文件名、文件所在网页的相关内容、附于文件的相关信息如题目、作者等。显而易见,这种基于文件本身描述信息的搜索并不能满足用户需求,而且描述信息有时候并不正确或者不存在。对此文献[44]提出Speechbot系统使用语音识别器在源文件没有相关描述信息时对音频文件进行识别,以协助建立音频视频的索引内容。Speechbot由代码转换器(Transcoder)、音频识别器(Speech Recognizer) Calista、资料管理器(Librarian)、索引器、用户接口四部分组成。代码转换器负责从网络上获取音频视频文件并进行解码。

多数音频视频搜索引擎系统仅提供到源文件的链接,而为了进一步提高检索性能,有的系统还提供从源文件中截取的音频、视频片段供用户检查是否符合需要。

网络资源的多样化伴随用户检索对象的多样化。Web上大量的多媒体资源具有越来越多的用户。目前的多媒体检索服务还有很多不足之处,多媒体检索技术是搜索引擎发展的重要方面。

 

6. 搜索引擎研究发展展望

随着网络的发展,搜索引擎有大量的用户群,其经济价值逐步显现,目前的研究、开发十分活跃,除了继续原有的提高查询结果的精度,提高检索的有效性;采用分布式体系结构提高系统规模和性能;提高对多媒体文件、隐藏文件的检索功能等方面的研究外,还出现了很多值得注意的动向。

61 P2P搜索理念

P2P搜索理念是指将P2P技 术应用到网页的检索中,通过共享所有硬盘上的文件、目录乃至整个硬盘,各个网站上都有一个自己的小的搜索引擎,相互之间可以进行沟通,用户搜索可达到传统 目录式搜索引擎无可比拟的深度。但是由于有很多这种相互独立又相互链接的引擎,其速度如何达到集中式管理的搜索引擎性能是一大技术问题。美国一家搜索引擎 设计公司i5 Digital已正式推出了依据对等搜索理念的商业性搜索引擎Pandangowww.pandango.com),但至今仍未进入主流搜索引擎阵容,P2P搜索目前也只能称为是未来的技术。

62交叉语言检索

交 叉语言信息检索是指用户用一种语言提交查询,搜索引擎对其进行翻译,然后在多种语言的数据库中进行检索,返回和用户查询相关的所有语言的文档。如果再加上 机器翻译,返回结果可以用用户使用的语言显示。该技术目前还处于初步研究阶段,主要的困难在于语言之间在表达方式和语义对应上的不确定性。但对于经济全球 化、互联网跨越国界的今天,无疑具有很重要的意义。

63全面智能化

包括智能搜索、智能代理信息过滤和个性化服务等。综合起来,全面智能化体现在四个方面:(1)网络蜘蛛的智能化(2)个性化:根据用户的评价调整自己的行为,为特定用户主动提供特定信息、特定服务。(3)搜索引擎人机接口的智能化,对搜索结果的进行合理的解释,通过自然语言和用户交互。(4)智能搜索引擎具有主动性,在任何特定的时候用各种方法与用户取得联系。搜索引擎根据用户特定时刻的位置信息,选择恰当的方法跟用户通信。

 

 

开源搜索:所谓开源搜索是指源代码公开的搜索引擎,这就不同于咱们平时一般用的商业搜索引擎比如google yahoo ,等,他们这些搜索引擎公司的搜索引擎核心技术是不对外开放的。在现在这个互联网高速发展的信息时代,谁抓住了搜索引擎就抓住了互联网的精髓,那就是客户。有了客户具有了流量 有了用户的粘性就会促使搜索引擎的大大普及。搜索引擎的对人民甚至在某些方面和国家的影响力也越来越多。像google等搜索引擎公司的搜索对用户是免费的但是他的搜索引擎的核心技术不是对外开放的,这就导致搜索引擎具有对在互联网获取信息的垄断。

而开源搜索引擎的出现就给搜索引擎带来了新的希望。

开放源代码搜索引擎为人们学习、研究并掌握搜索技术提供了极好的途径与素材,推动了搜索技术的普及与发展,使越来越多的人开始了解并推广使用搜索技术。 使用开源搜索引擎,可以大大缩短构建搜索应用的周期,并可根据应用需求打造个性化搜索应用,甚至构建符合特定需求的搜索引擎系统。搜索引擎的开源,无论是 对技术人员还是普通用户,都是一个福音

说道开源搜索引擎不得不说到维基百科。美国时间17,42岁的维基百科(Wikipedia)创始人JimmyWales正式发布维基搜索(WikiaSearch)服务.维基百科的历史以及1400万美元资金的资助名单,让人不敢小觑维基搜索上市,但是这个与众不同的搜索引擎,真的能撼动谷歌、雅虎的地位吗?

美国时间17,42岁的维基百科(Wikipedia)创始人JimmyWales正式发布维基搜索(WikiaSearch)服务.

7年前维基百科诞生时的默默无闻不同,维基搜索自去年7月威尔斯公开提及后就备受瞩目,大家都想知道这款不同于传统搜索引擎的维基搜索是否会撼动谷歌、雅虎的地位.对此,威尔斯谨慎地表示,他只是将在线百科全书的协作方法引入搜索领域,至少短期内不会威胁到当前主流搜索引擎.是这样吗?

不满,早在意料中

尽管包括中文在内的许多语言还都无法使用,但使用过维基搜索的人会明显感到它的不同.如果没有找到搜索内容,网页会提醒用户提供帮助,也就是撰写短文:对关键词进行简要描述,比如定义、同义词、参考短文、图像等.这样,其他用户今后再搜索时就会有更丰富的结果.这有些像维基百科,秉承众人拾柴火焰高的原则,借助群众的力量打造一个优秀的搜索引擎.

维基搜索推出3天后,美国的网络杂志《信息周刊》就发表文章表达了不少用户对维基搜索的不满,但这完全在威尔斯的意料之中.作为一种搜索引擎,特别是需要用户大量参与的搜索引擎,维基搜索需要时间提供相关的搜索结果.威尔斯说:“不要指望维基搜索一开始就可以提供能与谷歌相媲美的搜索结果,这根本不可能.17日是'软发行',维基搜索需要时间.”

威尔斯是一个沉得住气的人,在他2001年推出维基百科时,几乎没什么人看好这个网上的百科全书.1999 1020日价值1250美元(大约9000元人民币)32卷本《大英百科全书》全部上网,供人们免费查询与下载.这在当年是轰动一时的新闻,也给 33岁的威尔斯一个灵感:建立一个真正开放、免费的网络百科全书.

事实上,这个灵感在他见到沃德·坎宁安 (WardCunningham)前是很难实现的.威尔斯学金融出身,他在美国印第安那大学取得经济学博士学位,研究方向是期权定价.当他还在芝加哥的外汇市场如鱼得水时,美国人坎宁安开发了一种在Web基础上对文本进行浏览、创建、更改的社群协作式写作技术,并把它命名为wiki,意为快点快点的夏威夷语缩写.

2001,威尔斯把wiki技术变成了维基百科全书,英文版的维基百科全书于当年115日正式问世.在短短一个月时间内,维基的条目达到了200,一年之后增加到1.8万条.20049,维基百科全书的条目达到100 万条,此时它的投资总额达到50万美元,其中大部分是威尔士的个人投资,主要源于他早年在芝加哥金融市场的建树.

维基百科经过时间的长期沉淀,体现出了巨大价值.威尔斯凭借社区的影响力把维基百科打造成了一家知名的网络信息源.他说:“维基百科刚开始也是一无所有,经过7年的发展壮大,今天维基百科已经成了互联网领域第8大网站.如果用户有一种拥有者的感觉,那么他们就会继续使用该工具,这就是我们所要努力的方向.”

令人不敢小觑

回顾维基百科的历史,让人不敢小觑威尔斯的每一步探索.他在2004年成立了营利性公司WikiaInc.( 而维基百科是非营利性的),提供可以让任何人轻松搭建维基系统的软件平台,维基搜索就是该公司的项目之一.威尔斯在进军搜索领域前,并不指望叫板谷歌.但他有着自己的打算:改变用户网络搜索的方式.

维基搜索1400万美元资金的资助名单似乎意味着业界十分看好这款搜索引擎:亚马逊(提供1000万美元)、贝西默风险投资合伙人公司(BessemerVenturePartners)、网景通讯公司 (NetscapeCommunications) 创始人之一马克·安德森(MarcAndreesen)、美国第六大社交网站LinkedIn的创始人之一里德·霍夫曼(ReidHoffman)、莲花发展公司(LotusDevelopment)的创始人兼电子前沿基金会(ElectronicFrontierFoundation) 的创始人之一米切尔·卡普尔(MitchKapor).

20款开源搜索引擎系统

一些开源搜索引擎系统介绍,包含开源Web搜索引擎和开源桌面搜索引擎。

Sphider

Sphider是一个轻量级,采用PHP开发的web spider和搜索引擎,使用mysql来存储数据。可以利用它来为自己的网站添加搜索功能。Sphider非常小,易于安装和修改,已经有数千网站在使用它。

RiSearch PHP

RiSearch PHP是一个高效,功能强大的搜索引擎,特别适用于中小型网站。RiSearch PHP非常快,它能够在不到1秒钟内搜索5000-10000个页面。RiSearch是一个索引搜索引擎,这就意味着它先将你的网站做索引并建立一个数据库来存储你网站所有页面的关键词以便快速搜索。Risearch是全文搜索引擎脚本,它把所有的关键词都编成一个文档索引除了配置文件里面的定义排除的关键词。 RiSearch使用经典的反向索引算法(与大型的搜索引擎相同),这就是为什么它会比其它搜索引擎快的原因。

PhpDig

PhpDig是一个采用PHP开发的Web爬虫和搜索引擎。通过对动态和静态页面进行索引建立一个词汇表。当搜索查询时,它将按一定的排序规则显示包含关键字的搜索结果页面。PhpDig包含一个模板系统并能够索引PDF,Word,Excel,PowerPoint文档。PHPdig适用于专业化更强、层次更深的个性化搜索引擎,利用它打造针对某一领域的垂直搜索引擎是最好的选择。

OpenWebSpider

OpenWebSpider是一个开源多线程Web Spiderrobot:机器人,crawler:爬虫)和包含许多有趣功能的搜索引擎。

Egothor

Egothor是一个用Java编写的开源而高效的全文本搜索引擎。借助Java的跨平台特性,Egothor能应用于任何环境的应用,既可配置为单独的搜索引擎,又能用于你的应用作为全文检索之用。

Nutch

Nutch 是一个开源Java 实现的搜索引擎。它提供了我们运行自己的搜索引擎所需的全部工具。包括全文搜索和Web爬虫。

Lucene

Apache Lucene是一个基于Java全文搜索引擎,利用它可以轻易地为Java软件加入全文搜寻功能。Lucene的最主要工作是替文件的每一个字作索引,索引让搜寻的效率比传统的逐字比较大大提高,Lucen提供一组解读,过滤,分析文件,编排和使用索引的API,它的强大之处除了高效和简单外,是最重要的是使使用者可以随时应自己需要自订其功能。

Oxyus

是一个纯java写的web搜索引擎。

BDDBot

BDDBot是一个简单的易于理解和使用的搜索引擎。它目前在一个文本文件(urls.txt)列出的URL中爬行,将结果保存在一个数据库中。它也支持一个简单的Web服务器,这个服务器接受来自浏览器的查询并返回响应结果。它可以方便地集成到你的Web站点中。

Zilverline

Zilverline是一个搜索引擎,它通过web方式搜索本地硬盘或intranet上的内容。Zilverline可以从PDFWordExcelPowerpointRTFtxtjavaCHMziprar等文档中抓取它们的内容来建立摘要和索引。从本地硬盘或intranet中查找到的结果可重新再进行检索。Zilverline支持多种语言其中包括中文。

XQEngine

XQEngine用于XML文档的全文本搜索引擎。利用XQuery做为它的前端查询语言。它能够让你查询XML文档集合通过使用关键字的逻辑组合。有点类似于Google与其它搜索引擎搜索HTML文档一样。XQEngine只是一个用Java开发的很紧凑的可嵌入的组件。

MG4J

MG4J可以让你为大量的文档集合构建一个被压缩的全文本索引,通过使内插编码(interpolative coding)技术。

JXTA Search

JXTA Search是一个分布式的搜索系统。设计用在点对点的网络与网站上。

YaCy

YaCy基于p2p的分布式Web搜索引擎。同时也是一个Http缓存代理服务器。这个项目是构建基于p2p Web索引网络的一个新方法。它可以搜索你自己的或全局的索引,也可以Crawl自己的网页或启动分布式Crawling等。

Red-Piranha

Red-Piranha是一个开源搜索系统,它能够真正学习你所要查找的是什么。Red-Piranha可作为你桌面系统(WindowsLinuxMac)的个人搜索引擎,或企业内部网搜索引擎,或为你的网站提供搜索功能,或作为一个P2P搜索引擎,或与wiki结合作为一个知识/文档管理解决方案,或搜索你要的RSS聚合信息,或搜索你公司的系统(包括SAPOracle或其它任何Database/Data source),或用于管理PDFWord和其它文档,或作为一个提供搜索信息的WebService或为你的应用程序(WebSwingSWTFlashMozilla-XULPHPPerlc#/.Net)提供搜索后台等等。

LIUS

LIUS是一个基于Jakarta Lucene项目的索引框架。LIUSLucene添加了对许多文件格式的进行索引功能如:Ms WordMs ExcelMs PowerPointRTFPDFXMLHTMLTXTOpen Office序列和JavaBeans.针对JavaBeans的索引特别有用当我们要对数据库进行索引或刚好用户使用持久层ORM技术如:HibernateJDOTorqueTopLink进行开发时。

Apache Solr

Solr是一个高性能,采用Java5开发,基于Lucene的全文搜索服务器。文档通过Http利用XML加到一个搜索集合中。查询该集合也是通过 http收到一个XML/JSON响应来实现。它的主要特性包括:高效、灵活的缓存功能,垂直搜索功能,高亮显示搜索结果,通过索引复制来提高可用性,提供一套强大Data Schema来定义字段,类型和设置文本分析,提供基于Web的管理界面等。

Paoding

Paoding中文分词是一个使用Java开发的,可结合到Lucene应用中的,为互联网、企业内部网使用的中文搜索引擎分词组件。 Paoding填补了国内中文分词方面开源组件的空白,致力于此并希翼成为互联网网站首选的中文分词开源组件。 Paoding中文分词追求分词的高效率和用户良好体验。

Carrot2

Carrot2是一个开源搜索结果分类引擎。它能够自动把搜索结果组织成一些专题分类。Carrot2提供的一个架构能够从各种搜索引擎(YahooAPIGoogleAPIMSN Search APIeTools Meta SearchAlexa Web SearchPubMedOpenSearchLucene indexSOLR)获取搜索结果。

Regain

regain是一款与Web搜索引擎类似的桌面搜索引擎系统,其不同之处在于regain不是对Internet内容的搜索,而是针对自己的文档或文件的搜索,使用regain可以轻松地在几秒内完成大量数据(许多个G)的搜索。Regain采用了Lucene的搜索语法,因此支持多种查询方式,支持多索引的搜索及基于文件类型的高级搜索,并且能实现URL重写及文件到HTTP的桥接,并且对中文也提供了较好的支持。

Regain提供了两种版本:桌面搜索及服务器搜索。桌面搜索提供了对普通桌面计算机的文档与局域网环境下的网页的快速搜索。服务器版本主要安装在Web服务器上,为网站及局域网环境下的文件服务器进行搜索。

发表评论