首页 理论教育搜索引擎的运作机制

搜索引擎的运作机制

【摘要】:搜索引擎指对WWW站点资源和其他网络资源进行标引和检索的一类检索系统机制,例如Yahoo!1)搜索引擎的数据采集机制搜索引擎的数据采集一般都是通过“网络蜘蛛”来实现的。2)搜索引擎的数据索引机制搜索引擎的数据组织主要是利用强有力的数据库管理系统来组织所采集标引的网页信息,形成索引数据库。

索引擎(Search Engines)指对WWW站点资源和其他网络资源进行标引和检索的一类检索系统机制,例如Yahoo!、Alta Vista、Infoseek、Excite和搜狐(Sohu)等。它们可看成是网络信息检索工具的典型代表,一般包括数据采集标引机制、数据组织机制、用户检索机制。

搜索引擎的数据采集机制按照一定规律和方式对网络上WWW站点进行搜索,并将搜索到的WWW页面信息存入搜索引擎的临时数据库;搜索引擎的数据组织机制对WWW页面信息进行整理以形成规范的页面索引,并建立相应的索引数据库;搜索引擎的用户检索机制帮助用户用一定方式检索搜索引擎的索引数据库以获得符合用户需要的站点或页面。我们可将搜索引擎看成一个双层C/S结构的体系:当用户访问搜索引擎时,用户端为客户机,向搜索引擎提出检索请求,搜索引擎为服务器,检索自己的索引数据库并将检索结果以应答形式提交给用户。

1)搜索引擎的数据采集机制

搜索引擎的数据采集一般都是通过“网络蜘蛛”来实现的。网络蜘蛛也叫“网络爬虫”,是搜索引擎的核心,其工作原理可由图2-2表示:

图2-2 网络蜘蛛原理图

蜘蛛模块的作用就是从Internet上抓取Web页面和Web文档,形成用户想要创建的集合。整体核心是那些“小蜘蛛”,即搜索代理,连接到Web服务器并下载文件。这些蜘蛛都是用多线程方式编写,为了同时连接到多个Web Servers。每个蜘蛛都会从相应的URL队列中获得第一个URL并试着下载那个页面。

所搜集的文件被送到Spider Master(控制所有蜘蛛的对象),这些文档再传递给ContentHandler(内容处理器)。ContentHandler负责检查下载下来的文档并保存到本地磁盘。ContentHandler会通过叫做ContentSeen的哈希表核查是否这些文件在以前的镜像网站上存在。经过哈希表校验后,又会经由ContentFilter(内容过滤器)进行相关处理。Filter包括两个用户定义的列表:一个好的term list和坏的term list。允许用户自行控制文档集合的质量和相关度。一个独有的item id会被分配给每个文档并且索引会存储在Item Index中。

如果文档是HTML文件,HTML Parser会从文件中提取所有的URLs,然后传给URLHandler处理。这些URLs会通过Robot Exclusion协议进行排除。如若URL通过了检查,又会进一步被URL Filter核实。URL Filter也包括两个好坏列表,由正则表达式详细指明。

如果一个URL通过了所有的检查,就会被加到URL queues队列中,同时蜘蛛会以bread-first广度优先的顺序进行Web Documents的搜索。

2)搜索引擎的数据索引机制

搜索引擎的数据组织主要是利用强有力的数据库管理系统来组织所采集标引的网页信息,形成索引数据库。数据库中的一条记录基本上对应于一个网页,原则上包括关键词、网页摘要、网页URL等信息。由于各个搜索引擎的标引原则和方式不同,所以它们的索引记录内容(即使针对同一网页)可能很不相同。搜索引擎的数据组织模块还和数据采集标引模块一同实现索引数据的动态维护,例如针对不断更新内容的网页和不断变更的网页地址,对索引数据进行及时的更新、添加、删除等处理,以保证索引数据库准确反映网络信息资源的当前状况。

索引器通过抽取文档中的术语,以及记录这些术语与文档间的关系,创建了可搜索的文档索引。由于Web上出现的各种各样的文档格式,诸如HTML、MS Word、PDF等,索引器也应该能以不同的格式处理这些文档。

索引机制的设计原理如图2-3所示。

图2-3 索引结构原理图

(1)Indexer Master首先检查由蜘蛛模块创立的Item Index,看究竟搜集了多少文件及其在本地磁盘中的存储位置。

(2)每个文档信息被发送给合适的Parser解析器,将文件转换为一致的索引文档对象。

(3)每个文档对象又传给DocIndexer索引。特别地,DocIndexer会将文档进行分词,然后创建一个索引记录这些出现在一个文档中的词语。相关的位置信息以及每个词的频率也相应地记录下来。

(4)索引创建后会自动存储在Index Structure中,并转化成Inverted Index“倒排索引”。与此同时,原先的索引会映射一个文档到包含在此内的词汇列表中;而倒排索引旨在映射一个单词到包含此单词的文档列表中。

当用户查询输入到搜索引擎中时,这就实现了Fast Retrieval快速检索。

3)搜索引擎的用户检索机制

搜索引擎的数据检索机制主要包括四个部分:

(1)检索界面模块,接受用户检索要求,往往分为一般检索界面和高级检索界面;

(2)检索策略模块,将用户输入的检索要求编制成计算机可执行的规范化检索式;

(3)检索执行模块,利用检索式检索索引数据库,并保证检索的速度和准确性;

(4)检索结果组织模块,对检中记录的整理组织。