搜索引擎的基本工作原理
搜素引擎(Search Engine)是一种网上信息检索工具,它能帮助用户迅速而全面地找到所需要的信息。我们这样对搜索引擎进行定义:搜索引擎是一种能够通过因特网接受用户的查询命令,并向用户提供符合其查询要求的信息资源网址的系统。据统计,搜索引擎搜索仅次于电子邮件的应用。目前网上比较有影响的中文搜索工具有:google、百度、北大天网、爱问(iask)、雅虎(yahoo!)、搜狗(sogou)、搜搜(soso)等搜索引擎。英文的有:Yahoo! 、AltaVista、Excite、Infoseek、Lycos、Aol等。另外还有专用搜索引擎,例如专门搜索歌曲和音乐的;专门搜索电子邮件地址、电话与地址及公众信息的;专门搜索各种文件的FTP搜索引擎等。
搜索引擎是指根据一定的策略,运用特定的计算机程序搜集互联网上的信息,在对信息进行组织和处理后,为用户提供检索服务的系统。搜索引擎并不是真正的互联网,它搜索的实际上是预先整理好的网页索引数据库。真正意义上的搜索引擎,通常指的是收集了互联网上几千万到几十亿个网页并对我那个也中的每一个词(即关键词)进行索引。建立索引数据库的全文搜索引擎。现在的搜索引擎已普遍使用超链分析技术,除了分析索引网页本身的内容,还分析索引所有指向该网页的链接的URL、Anchor、Text,甚至链接周围的文字。所以,有时候,即使某个网页A中并没有出现某个词,比如
“信息检索”,但如果有网页B用链接“信息检索”指向这个网页A,那么用户搜索“信息检索”时也能找到网页A。而且,如果有越多的网页的“信息检索”链接指向网页A,那么网页A在用户搜索“信息检索”时也会被认为更相关,排序也会越靠前。
搜索引擎的原理,可以分为四步:从互联网上抓取网页、建立索引数据库、在索引数据库中搜索排序、对搜索结果进行处理和排序。
(1)、从互联网上抓取网页:利用能够从互联网上自动收集网页的蜘蛛系统程序,自动访问互联网,并沿着任何网页中所有URL爬到其他网页,重复这个过程,并把爬过的所有网页收集回来。
(2)、建立索引数据库:由分析索引系统程序对收集回来的网页进行分析,提取相关网页信息(包括网页所在URL、编码类型、页面内容包含的关键词、关键词位置、生成时间、大小、与其他网页的链接关系等),并根据一定的相关度算法进行大量的复杂计算,得到每一个网页针对页面内容中及超链中每一个关键词的相关度(或重要性),然后利用这些相关信息建立网页索引数据库。
(3)、在索引数据库中搜索排序:当用户输入关键词后,由搜索系统程序从网页索引数据库中找到符合该关键词的所有相关网页。因为所用相关网页针对该关键词的相关度早已计算好,所以只需按照现成的相关数值排序,相关度越高,排名越靠前。最后由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。
(4)、对搜索结果进行处理排序:所有相关网页针对该关键词的相关信息在索引库中都有记录,只需综合相关信息和网页级别形成相关数值度,然后进行排序,相关度越高,排名越靠前。最后由页面生成系统将搜索结果的链接地址和页面内容摘要等内容组织起来返回给用户。
搜索引擎的分类
搜索引擎的技术基础是全文检索技术。全文检索通常指文本全文检索,包括信息的储存、组织、表现、查询、存取等各个方面,其核心为文本信息的索引和检索,一般用于企事业单位。随着互联网信息的发展,搜索引擎在全文检索技术上逐渐发展起来,并得到广泛的应用,但搜索引擎还是不同于全文检索。搜索引擎和常规意义上的全文检索主要区别有以下几点。
(1)、数据量。
传统全文检索系统面向的是企业本身的数据或者和企业相关的数据,一般索引数据库的规模多在GB级,数据量大的也只有几百万条;但互联网网页搜索需要处理几十亿的网页,搜索引擎的策略都是采用服务器群集和分布式据算技术。
(2)、内容相关性。
信息太多,差准和排序就是特别重要,Google等搜索引擎采用网页链接分析技术,根据互联网上网页被链接的次数作为重要性评判的依据;但全文检索的数据源中相互链接的程度并不高,不能作为判别重要性的依据,只能基于内容的相关性排序。
(3)、安全性。
互联网信息是公开的,除了文本内容外,其他信息都不太重要;而企业全文检索的数据源都是企业内部的信息,有等级、权限等限制,对查询方式也有更严格的要求,因此其数据一般会安全和集中地存放在数据库仓库中以保证数据安全和管理的要求。
(4)、个性化和智能化。
搜索引擎面向的是互联网的访问者,由于其数据量和客户数量的限制,自然语言处理技术、知识检索、知识挖掘等计算密集的智能计算技术很难应用,这也是目前搜索引擎技术努力的方向。而全文检索数据量小,检索需求明确,客户量少,在智能化和个性上更具有优势。
除了与全文检索系统有上述区别之外,搜索引擎按其工作方式主要可以分为3种,分别是全文搜索引擎(Full Text Search Engine)、目录索引类(Search Index/Directory)和元搜索引擎(Meta Search Engine)。
一、全文搜索引擎。
全文搜索引擎是名副其实的搜索引擎(google、AllTheWeb、AltaVista、Inktomi、Teoma、WiseNut、百度、中文搜索、北大天网等),他们都是通过从互联网上提取的各个网站的信息(以网页文字为主)而建立的数据库中,检索与用户查询条件匹配的相关记录,然后按一定的排列顺序将结果返回给用户,因此它们是真正的的搜索引擎。从搜索结果来源的角度,全文搜索引擎又可以细分为两种:一种是拥有自己的检索程序,俗称机器人程序或蜘蛛程序,并自建网页数据库,搜索结果直接从自身的数据库中调用,如上面提到的搜索引擎;另一种则是租用其他引擎的数据库,并按自定的格式排列搜索结果,如Lycos引擎。
全文搜索引擎有全文搜索、检索功能强、信息更新速度快等优点。但同时也有其不足之处,提供的信息虽然多而全,但可供选择的信息太多反而降低相应的命中率,并且提供的查询结果重复链接较多,层次结构不清晰,给人一种繁多杂乱的感觉。
二、目录索引类搜索引擎。
目录索引虽然有搜索功能,但在严格意义上算不上是真正的搜索引擎,仅仅是按目录分类的网站链接列表而已。用户完全可以不用进行关键词(keywords)查询,仅靠分类目录也可找到需要的信息。目录索引中最具代表性的莫过于大名鼎鼎的Yahoo!,其他的还有Open Directory Project(DMOZ)、LookSmart、About等。国内的搜狐、新浪、网易搜索也都属于这一类。
目录索引与全文搜索引擎的区别在于它是由人工建立的,通过“人工方式”将站点进行了分类,不像全文搜索引擎那样,将网站上的所有文中和信息都收录进去,而是首先将该网站划分到某个分类下,再记录一些摘要信息,对该网站进行概述性的简要介绍,用户提出搜索要求时,搜索引擎只在网站的简介中搜索。它的主要优点有:层次、结构清晰、易于查找;多级类目,便于查询到具体明确的主题;在内容提要、分类目录下有简明扼要的内容,方便使用户一目了然。其缺点是搜索范围较小、更新速度慢、查询交叉类目时容易遗漏。
三、元搜索引擎。
元搜索引擎在接受用户查询请求时,同时在其他多个搜索引擎上进行搜索,并将结果返回给用户。著名的元搜索引擎有InfoSpace、 Dogpile、Vivisimo等,中文元搜索引擎中具代表性的有北斗搜索。在搜索结果排列方面,有的直接按来源搜索引擎排列搜索结果,如 Dogpile,有的则按自定的规则将结果重新排列组合,如Vivisimo。
除上述三大类搜索引擎外,还有以下集中非主流形式。
(1)、集合式搜索引擎:如HotBot在2002年底推出的引擎。该搜索引擎类似于元搜索引擎,但区别在于不是同时调用多个搜索引擎,而是由用户从提供的4个引擎之中选择,因此他叫集合式搜索引擎更确切些。
(2)、门户搜索引擎:如Aol Search、Msn Search等虽然提供搜索服务,但自身既没有分类目录也没有网页数据库,其搜索结果完全来自于其他引擎。
(3)、免费链接目录(Free For ALL links,FFA):这类网站一般只简单地的滚动排列链接条目,少部分有简单的分类目录,不过规模比起Yahoo!等目录索引要小得多。
除了上面的分类,搜索引擎还应具有以下功能:
A、网页搜索功能
B、网站搜索功能
C、图片搜索功能
D、新闻搜索功能
E、字典搜索功能
F、功能搜索功能
搜索引擎的关键技术
1、信息收集和存储技术。
网上信息收集和存储一般分为人工和自动两种方式。
人工方式采用传统信息收集、分类、存储、组织和检索的方法。研究人员对网站进行调查、筛选、分类、存储。由专业人员手工建立关键字索引,再将索引信息存入计算机相应的数据库中。
自动方式通常是由网络机器人来完成的。“网络机器人”是一种自动运行的软件,其功能是搜索因特网上的网站和网页。这种软件定期在因特网上漫游,通过网页间链接顺序地搜索新的地址,当遇到新的网页的时,就给该网页上的某些字或全部字做上索引并把它们加入到搜索引擎的数据库中,由此搜索引擎的数据库得以定期更新。
一般来说,人工方式收集信息的准确性要远优于“网络机器人”,但其收集信息的效率及全面性低于“网络机器人”。
2、信息预处理技术。
信息预处理包括信息格式支持与转换及信息过滤。目前因特网上的信息发布格式多种多样,这就要求搜索引擎支持多种文件格式。从实际情况来看,所有的搜索引擎都支持HTML格式,而对于其他文件格式的支持则不同的搜索引擎有不同的规定,最多的能支持200多种文件格式。一般地说,一个企业级的公用Web站点起码应该支持40~60种文件格式。同时搜索引擎还应具备信息格式转换功能,以保证不同格式的数据数据均能在网络流通。信息过滤也是搜索引擎的一项重要技术。在因特网中,存在大量的无用信息,一个好的搜索引擎应当尽量减少垃圾站点的数量,这是信息过滤要着重解决的问题。
3、信息索引技术。
信息索引就是创建文档信息的特征记录,以使用户能够快速地检索到所需信息。建立索引主要涉及以下几个问题。
(1)、信息语词切分和语词词法分析:语词是信息表达的最小单位,由于语词切分中存在切分歧义,切分需要充分利用各种上下文知识。语词词法分析是指识别出各个语词的词干,以便根据词干建立信息索引。
(2)、进行词性标注及相关的自然语言处理:词性标注是指利用基于规则和统计(马尔科夫链)的科学方法对语词进行标注,基于马尔科夫链随即过程的n元语法统计分析方法在词性标注中能达到较高的精度。可利用多种语法规则识别出重要的短语结构。自然语言处理是运用计算机对自然语言进行分析和理解,从而使计算机在某种程度上具有人的语言能力。将自然语言处理应用在信息检索中,可以提高信息检索的精度和相关性。
(3)、建立检索项索引:使用倒排文件的方式建立检索项索引,一般包括“检索项”、“检索项所在文件位置信息”以及“检索项权重”。
(4)、检索结果处理技术:搜索引擎的检索结果通常包含大量文件,用户不可能一一浏览。搜索引擎一般应按与查询的相关程度对检索结果进行排列,最相关的文件通常放在最前面。搜索引擎确定相关性的方法有概率方法、位置方法、摘要方法、分类或聚类方法等。
a、概率方法:根据关键词在文中出现的频率来判定文件的相关性。这种方法对关键词出现的次数进行统计,关键词出现的次数越多,该文件与查询的相关程度就越高。
b、位置方法:根据关键词在文中出现的位置来判定文件的相关性。关键词在文件中出现的越早,文件的相关程度就越高。
c、摘要方法:搜索引擎自动地为每个文件生成一份摘要,让用户自己判断结果的相关性
,以使用户进行选择。
d、分类或聚类方法:搜索引擎采用分类或聚类技术,自动把查询结果归入到不同的类别中。