搜索引擎介绍和各功能模块详细介绍
搜索引擎是一种依靠技术取胜的产品,搜索引擎基本结构一般包括:搜索器、索引器、检索器、用户接口等四个功能模块。都是搜索引擎产品提供商进行比拼的着力点。
搜集器、分析器、索引器、检索器、用户接口等各部分说明图
大型互联网搜索引擎的数据中心一般运行数千台甚至数十万台计算机,而且每天向计算机集群里添加数十台机器,以保持与网络发展的同步。搜集机器自动搜集网页信息,平均速度每秒数十个网页,检索机器则提供容错的可缩放的体系架构以应对每天数千万甚至数亿的用户查询请求。企业搜索引擎可根据不同的应用规模,从单台计算机到计算机集群都可以进行部署。
搜索引擎主要四个功能模块(搜索器、索引器、检索器、用户接口)详细介绍:
搜索引擎各个功能模块的关系
上图描述了一般搜索引擎的系统架构,其中包括页面搜集器、索引器、检索器、索引文件等功能模块组成部分的关系。
一、搜集器功能模块介绍
搜集器的功能是在互联网中漫游,发现并搜集信息,它搜集的信息类型多种多样,包括HTML页面、XML文档、Newsgroup文章、FTP文件、字处理文档、多媒体信息等。
搜索器是一个计算机程序,其实现常常采用分布式和并行处理技术,以提高信息发现和更新的效率。商业搜索引擎的搜集器每天可以搜集几百万甚至更多的网页。搜索器一般要不停地运行,要尽可能多、尽可能快地搜集互联网上的各种类型的新信息。因为互联网上的信息更新很快,所以还要定期更新已经搜集过的旧信息,以避免死链接和无效链接。另外,因为Web信息是动态变化的,因此搜集器、分析器和索引器要定期更新数据库,更新周期通常约为几周甚至几个月。索引数据库越大,更新也越困难。
互联网上的信息太多,即使功能强大的搜集器也不可能搜集互联网上的全部信息。因此,搜集器采用一定的搜索策略对互联网进行遍历并下载文档,例如,一般采用以宽度优先搜索策略为主、线性搜索策略为辅的搜索策略。
在搜集器实现时,系统中维护一个超链队列,或者堆栈,其中包含一些起始URL,搜集器从这些URL出发,下载相应的页面,并从中抽取出新的超链加入到队列或者堆栈中,上述过程不断重复队列直到堆栈为空。为提高效率,搜索引擎将Web空间按照域名、IP地址或国家域名进行划分,使用多个搜集器并行工作,让每个搜索器负责一个子空间的搜索。为了便于将来扩展服务,搜集器应能改变搜索范围。
1.线性搜集策略
线形搜索策略的基本思想是从一个起始的IP地址出发,按IP地址递增的方式搜索后续的每一个IP地址中的信息,完全不考虑各站点的HTML文件中指向其他Web站点的超链地址。此策略不适用于大规模的搜索(主要原因在于IP可能是动态的),但可以用于小范围的全面搜索,利用此种策略的搜集器可以发现被引用较少或者还没有被其他HTML文件引用的新HTML文件信息源。
2. 深度优先搜集策略
深度优先搜集策略是早期开发搜集器使用较多的一种方法,它的目的是要达到被搜索结构的叶结点。深度优先搜索顺着HTML文件上的超链走到不能再深入为止,然后返回到上一个接点的HTML文件,再继续选择该HTML文件中的其他超链。当不再有其他超链可选择时,说明搜索已经结束。深度优先搜索适宜遍历一个指定的站点或者深层嵌套的HTML文件集,但对于大规模的搜索,由于Web结构相当深,也许永远也出不来了。
3. 宽度优先搜集策略
宽度优先搜集策略是先搜索同一层中的内容,然后再继续搜索下一层。假如一个HTML文件中有三个超链,选择其中之一并处理相应的HTML文件,然后返回并选择刚才第一个网页的第二个超链,处理相应的HTML文件,再返回。一旦同一层上的所有超链都已被处理过,就可以开始在刚才处理过的HTML文件中搜索其余的超链。这样保证了对浅层的首先处理,当遇到一个无穷尽的深层分支时,也就不会再陷进去。宽度优先搜集策略容易实现并被广泛采用,但是需要花费比较长的时间才能到达深层的HTML文件。
4. 收录搜集策略
有些网页可以通过用户提交的方式进行搜集,例如某些商业网站向搜索引擎发出收录申请,搜集器就可以定向搜集提交申请网站的网页信息并加入到搜索引擎的索引数据库中。
二、分析器功能模块介绍
对搜集器搜集来的网页信息或者下载的文档一般要首先进行分析,以用于建立索引,文档分析技术一般包括: 分词(有些仅从文档某些部分抽词,如Altavista)、过滤(使用停用词表stoplist)、转换(有些对词条进行单复数转换、词缀去除、同义词转换等工作),这些技术往往与具体的语言以及系统的索引模型密切相关。
三、索引器功能模块介绍
索引器的功能是对搜索器所搜索的信息进行分析处理,从中抽取出索引项,用于表示文档以及生成文档库的索引表。
索引项有元数据索引项和内容索引项两种!
元数据索引项与文档的语意内容无关,如作者名、URL、更新时间、编码、长度、链接流行度等等;
内容索引项是用来反映文档内容的,如关键词及其权重、短语、单字等等。
内容索引项可以分为单索引项和多索引项(或称短语索引项)两种。
单索引项对于英文来讲是英语单词,比较容易提取,因为单词之间有天然的分隔符(空格);
对于中文等连续书写的语言,必须进行词语的切分。在搜索引擎中,一般要给单索引项赋予一个权值,以表示该索引项对文档的区分度,同时用来计算查询结果的相关度。使用的方法一般有统计法、信息论法和概率法。短语索引项的提取方法有统计法、概率法和语言学法。
为了快速查找到特定的信息,建立索引数据库是一个常用的方法,即将文档表示为一种便于检索的方式并存储在索引数据库中。索引数据库的格式是一种依赖于索引机制和算法的特殊数据存储格式,索引的质量是Web信息检索系统成功的关键因素之一。
一个好的索引模型应该易于实现和维护、检索速度快、空间需求低。搜索引擎普遍借鉴了传统信息检索中的索引模型,包括倒排文档、矢量空间模型、概率模型等。例如在矢量空间索引模型中,每个文档d都表示为一个范化矢量V(d)=(t1,w1 (d)…ti,w1(d)…tn,wn(d))。其中ti为词条项,wi(d)为ti在d中的权值,一般被定义为ti在d中出现频率tfi(d)的函数。
索引器的输出是索引表,它一般使用倒排形式(Inversion List),即由索引项查找相应的文档。索引表也可能记录索引项在文档中出现的位置,以便检索器计算索引项之间的相邻或接近关系(proximity)。
索引器可以使用集中式索引算法或分布式索引算法。当数据量很大时,必须实现实时索引(Instant Indexing),否则就无法跟上信息量急剧增加的速度。索引算法对索引器的性能(如大规模峰值查询时的响应速度)有很大的影响。一个搜索引擎的有效性在很大程度上取决于索引的质量。
四、检索器功能模块介绍
检索器的功能是根据用户的查询在索引库中快速检出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并实现某种用户相关性反馈机制。检索器常用的信息检索模型有集合理论模型、代数模型、概率模型和混合模型等多种,可以查询到文本信息中的任意字词,无论出现在标题还是正文中。
检索器从索引中找出与用户查询请求相关的文档,采用与分析索引文档相识的方法来处理用户查询请求。如在矢量空间索引模型中,用户查询q首先被表示为一个范化矢量V(q)=(t1,w1(q); …; ti,wi(q); …; tn,wn(q)),然后按照某种方法来计算用户查询与索引数据库中每个文档之间的相关度,而相关度可以表示为查询矢量V(q)与文档矢量V(d)之间的夹角余弦,最后将相关度大于阀值的所有文档按照相关度递减的顺序排列并返还给用户。当然搜索引擎的相关度判断并不一定与用户的需求完全吻合。
五、用户接口功能模块介绍
用户接口的作用是为用户提供可视化的查询输入和结果输出界面,方便用户输入查询条件、显示查询结果、提供用户相关性反馈机制等,其主要目的是方便用户使用搜索引擎,高效率、多方式地从搜索引擎中得到有效的信息。用户接口的设计和实现必须基于人机交互的理论和方法,以适应人类的思维和使用习惯。
在查询界面中,用户按照搜索引擎的查询语法制定待检索词条及各种简单或高级检索条件。简单接口只提供用户输入查询串的文本框,复杂接口可以让用户对查询条件进行限制,如逻辑运算(与、或、非)、相近关系(相邻、NEAR)、域名范围(如edu、com)、出现位置(如标题、内容)、时间信息、长度信息等等。目前一些公司和机构正在考虑制定查询选项的标准。
在查询输出界面中,搜索引擎将检索结果展现为一个线性的文档列表,其中包含了文档的标题、摘要、快照和超链等信息。由于检索结果中相关文档和不相关文档相互混杂,用户需要逐个浏览以找出所需文档。
附录:
搜索引擎的技术流派
搜索引擎的技术流派可以分为三类:
第一类是利用计算机程序自动进行信息处理的自动化派,其典型代表是Google以及Ghunt等;
第二类是以人工进行信息分类处理为主的人力加工派,这方面的典型代表是早期的Yahoo,正在兴起的Web 2.0、网摘等社区化搜索是这一流派的新发展;
第三类是强调智能化人机交互、协同的融合派,目前英文Yahoo的搜索引擎在发展这方面的技术,MSN Live也显示出其更加重视融合性的技术,联索IFACE专业搜索融入了用户知识和机器学习方法,可以看做是融合派在中文搜索引擎方面的典型代表。
如果按照网页库的容量、相关度计算技术、用户搜索体验以及商业模式等方面来划分,到目前为止,搜索引擎的发展大约经历了两代。
第一代搜索引擎(1994年~1997年)的索引网页量一般都在数百万量级左右,采用全文检索技术和分布式并行运算技术,但极少重新搜集网页并去刷新索引,而且其检索速度较慢,一般都要等待10秒甚至更长的时间,同时承受的检索请求也受到很大限制,商业模式处于探索期并且尚未成型。
第二代搜索引擎(1998年至今)大多采用分布式协同处理方案,其网页索引库一般都在数千万个网页量级甚至更多,采用可伸缩的索引库架构,每天能够响应数千万次甚至数以亿计的用户检索请求。1997年11月,当时最先进的几个搜索引擎宣称能建立1亿数量级的网页索引。以Google为代表的第二代搜索引擎通过链接分析和点击分析(网页流行度)方法来计算(网页权威性)相关度取得了巨大的成功。另外,以自然语言进行问题解答的搜索引擎在某种程度上改善了用户体验,更重要的是第二代搜索引擎奠定了目前搜索引擎普遍采用的成熟商业模式,如Google、Overture、百度等收费搜索服务均受益于此商业模式。
相关名词解释
搜索引擎
是由一个称为蜘蛛(Spider)的机器人程序以某种策略自动地在互联网中搜集和发现信息,由索引器为搜集到的信息建立网页索引数据库,由检索器根据用户输入的查询条件检索索引库,并将查询结果返回给用户。服务方式是面向网页的全文检索服务。
目录索引搜索引擎:
主要以人工方式搜集信息,由编辑人员查看信息之后,人工形成信息摘要,并将信息置于事先确定的分类框架中。信息大多面向网站,提供目录浏览服务和直接检索服务。用户完全可以不用关键词(Keywords)进行查询,仅靠分类目录也可找到需要的信息。
元搜索引擎:
是指在统一的用户查询界面与信息反馈的形式下,共享多个搜索引擎的资源库为用户提供信息服务的系统。元搜索引擎是借助于其他搜索引擎进行工作,没有自己的索引库,它是将用户的查询请求同时向多个搜索引擎递交,将返回的结果进行重复排除、重新排序等处理后,作为自己的结果返回给用户。
自动分类技术:
是计算机根据分类标准自动将文档归类到已经存在的类别体系(或者主题)下的某一个具体类别中。目前自动分类并不能完全代替人工所做的相关工作,只是提供了一个花费较少的可选择方法。
文本聚类技术:
是利用计算机将已经存在的大量文本(很多文档)进行分组的全自动处理过程。聚类可以提供对一个大的文本集内容的概况了解,可以识别隐藏的共同点,可以便捷地浏览相近或相关的文本。
网文摘录:
又称网摘,它具有对内容页的收藏、分类、摘录、加注标签、保存到信息库、信息库共享等功能,主要是为了满足用户阅读网络内容和信息知识积累的需要。