搜索引擎是一种依靠技术取胜的产品,搜索引擎的各个组成部分,包括页面搜集器、索引器、检索器等,都是搜索引擎产品提供商进行比拼的着力点。
近几年,搜索引擎的商业化取得了巨大的成功,如著名搜索引擎公司Google、Yahoo(本文中提到Yahoo时,特指英文Yahoo)、百度等纷纷成功上市,引发了众多公司涉足于该领域,带动了人力、资本的大量投入,连软件巨人Microsoft公司也禁不住诱惑积极打造自己的搜索引擎。 但是,从性能上来说,目前的搜索引擎还不尽如人意,搜索返回的结果往往与用户的检索要求相去甚远,有效性还不是很高。本文将对搜索引擎的工作原理及其实现技术进行分析,从中可以了解限制搜索引擎用户体验改善的因素到底有哪些。
搜索引擎的工作过程
大型互联网搜索引擎的数据中心一般运行数千台甚至数十万台计算机,而且每天向计算机集群里添加数十台机器,以保持与网络发展的同步。搜集机器自动搜集网页信息,平均速度每秒数十个网页,检索机器则提供容错的可缩放的体系架构以应对每天数千万甚至数亿的用户查询请求。企业搜索引擎可根据不同的应用规模,从单台计算机到计算机集群都可以进行部署。
搜索引擎一般的工作过程是:
首先对互联网上的网页进行搜集,然后对搜集来的网页进行预处理,建立网页索引库,实时响应用户的查询请求,并对查找到的结果按某种规则进行排序后返回给用户。搜索引擎的重要功能是能够对互联网上的文本信息提供全文检索。
图1 搜索引擎的工作流程
搜索引擎通过客户端程序接收来自用户的检索请求,现在最常见的客户端程序就是浏览器,实际上它也可以是一个用户开发的简单得多的网络应用程序。用户输入的检索请求一般是关键词或者是用逻辑符号连接的多个关键词,搜索服务器根据系统关键词字典,把搜索关键词转化为wordID,然后在标引库(倒排文件)中得到docID列表,对docID列表中的对象进行扫描并与wordID进行匹配,提取满足条件的网页,然后计算网页和关键词的相关度,并根据相关度的数值将前K篇结果(不同的搜索引擎每页的搜索结果数不同)返回给用户,其处理流程如图1所示。
图2描述了一般搜索引擎的系统架构,其中包括页面搜集器、索引器、检索器、索引文件等部分,下面对其中的主要部分的功能实现进行了介绍。
图2 搜索引擎各个组成部分的关系
(责任编辑:韩建光) |