搜索引擎是一种依靠技术取胜的产品,搜索引擎的各个组成部分,包括页面搜集器、索引器、检索器等,都是搜索引擎产品提供商进行比拼的着力点。
搜索引擎一般的工作过程是:首先对互联网上的网页进行搜集,然后对搜集来的网页进行预处理,建立网页索引库,实时响应用户的查询请求,并对查找到的结果按某种规则进行排序后返回给用户。搜索引擎的重要功能是能够对互联网上的文本信息提供全文检索。
一般搜索引擎的系统架构,其中包括页面搜集器、索引器、检索器、索引文件等部分,下面对其中的主要部分的功能实现进行了介绍。
①搜集器
搜集器的功能是在互联网中漫游,发现并搜集信息,它搜集的信息类型多种多样,包括HTML页面、XML文档、Newsgroup文章、FTP文件、字处理文档、多媒体信息等。搜索器是一个计算机程序,其实现常常采用分布式和并行处理技术,以提高信息发现和更新的效率。商业搜索引擎的搜集器每天可以搜集几百万甚至更多的网页。搜索器一般要不停地运行,要尽可能多、尽可能快地搜集互联网上的各种类型的新信息。因为互联网上的信息更新很快,所以还要定期更新已经搜集过的旧信息,以避免死链接和无效链接。另外,因为Web信息是动态变化的,因此搜集器、分析器和索引器要定期更新数据库,更新周期通常约为几周甚至几个月。索引数据库越大,更新也越困难。
互联网上的信息太多,即使功能强大的搜集器也不可能搜集互联网上的全部信息。因此,搜集器采用一定的搜索策略对互联网进行遍历并下载文档,例如,一般采用以宽度优先搜索策略为主、线性搜索策略为辅的搜索策略。
在搜集器实现时,系统中维护一个超链队列,或者堆栈,其中包含一些起始URL,搜集器从这些URL出发,下载相应的页面,并从中抽取出新的超链加入到队列或者堆栈中,上述过程不断重复队列直到堆栈为空。为提高效率,搜索引擎将Web空间按照域名、IP地址或国家域名进行划分,使用多个搜集器并行工作,让每个搜索器负责一个子空间的搜索。为了便于将来扩展服务,搜集器应能改变搜索范围。
②分析器
对搜集器搜集来的网页信息或者下载的文档一般要首先进行分析,以用于建立索引,文档分析技术一般包括: 分词(有些仅从文档某些部分抽词,如Altavista)、过滤(使用停用词表stoplist)、转换(有些对词条进行单复数转换、词缀去除、同义词转换等工作),这些技术往往与具体的语言以及系统的索引模型密切相关。
③索引器
索引器的功能是对搜索器所搜索的信息进行分析处理,从中抽取出索引项,用于表示文档以及生成文档库的索引表。索引项有元数据索引项和内容索引项两种: 元数据索引项与文档的语意内容无关,如作者名、URL、更新时间、编码、长度、链接流行度等等; 内容索引项是用来反映文档内容的,如关键词及其权重、短语、单字等等。
④检索器
检索器的功能是根据用户的查询在索引库中快速检出文档,进行文档与查询的相关度评价,对将要输出的结果进行排序,并实现某种用户相关性反馈机制。
⑤用户接口
用户接口的作用是为用户提供可视化的查询输入和结果输出界面,方便用户输入查询条件、显示查询结果、提供用户相关性反馈机制等,其主要目的是方便用户使用搜索引擎,高效率、多方式地从搜索引擎中得到有效的信息。用户接口的设计和实现必须基于人机交互的理论和方法,以适应人类的思维和使用习惯。
在查询界面中,用户按照搜索引擎的查询语法制定待检索词条及各种简单或高级检索条件。简单接口只提供用户输入查询串的文本框,复杂接口可以让用户对查询条件进行限制,如逻辑运算(与、或、非)、相近关系(相邻、NEAR)、域名范围(如edu、com)、出现位置(如标题、内容)、时间信息、长度信息等等。目前一些公司和机构正在考虑制定查询选项的标准。