与技术发展的关系
对搜索引擎技术发展史做了归纳整理,对照本节提到的搜索引擎3个核
心问题,可以看到不同历史发展阶段技术的不同侧重点,以及搜索引
擎技术螺旋式上升的发展趋势,如图1-1所示。
图1-1 不同发展时期的核心问题
对于分类目录式搜索引擎,其重点关注的是信息的可信赖性,因为分类目录
内收录的网站经过人工精心筛选,所以具有很强的可信赖性,但是对于用户
需求和相关性是不做考虑的,完全靠用户自由浏览来确定。
对于第一代文本检索式搜索引擎,其重点关注的是查询关键词和网页内容的
相关性。这种搜索方式假定用户输入的查询关键词就是用户的真实需求,很
明显这种假设很难成立。另外,这种搜索方式对于信息的可信度也未做任何
识别。
第二代搜索引擎引入链接分析技术,链接关系代表了一种推荐含义,而获得
越多推荐的网页其链接分析得分越高,这其实是一种对网页可信度的度量标
准。同时,第二代搜索引擎也利用了文本检索模型,来计算查询和网页内容
的相关性。所以第二代搜索引擎是综合考虑了信息的相关性和可信性的,但
是同样没有对用户需求做关注。
第三代搜索引擎的重点则是用户的真实需求,其他方面则兼顾了第二代搜索引
擎的优点,即第三代搜索引擎同时考虑了3个核心问题。
搜索引擎的技术架构
作为互联网应用中最具技术含量的应用之一,优秀的搜索引擎需要复杂的架构和
算法,以此来支撑对海量数据的获取、存储,以及对用户查询的快速而准确地响
应。本节主要从宏观上介绍搜索引擎的整体架构和各个组成模块的功能。
从架构层面,搜索引擎需要能够对以百亿计的海量网页进行获取、存储、处理的
能力,同时要保证搜索结果的质量。如何获取、存储并计算如此海量的数据?如
何快速响应用户的查询?如何使得搜索结果能够满足用户的信息需求?这些都是
搜索引擎面对的技术挑战。
图1-2是一个通用的搜索引擎架构示意图。搜索引擎由很多技术模块构成,各自负
责整体功能的一部分,相互配合形成了完善的整体架构。
图1-2 搜索引擎架构
搜索引擎的信息源来自于互联网网页,通过网络爬虫将整个互联网的信息获取到本地,因为
互联网页面中有相当大比例的内容是完全相同或者近似重复的,“网页去重”模块会对此做
出检测,并去除重复内容。
在此之后,搜索引擎会对网页进行解析,抽取出网页主体内容,以及页面中包含的指向其他
页面的链接。为了加快响应用户查询的速度,网页内容通过“倒排索引”这种高效查询数据
结构来保存,而网页之间的链接关系也会予以保存。之所以要保存链接关系,是因为这种关
系在网页相关性排序阶段是可利用的,通过“链接分析”可以判断页面的相对重要性,对于
为用户提供准确的搜索结果帮助很大。
由于网页数量太多,搜索引擎不仅需要保存网页原始信息,还要存储一些中间的处理结果,使
用单台或者少量的机器明显是不现实的。Google等商业搜索引擎为此开发了一整套云存储与云
计算平台,使用数以万计的普通PC搭建了海量信息的可靠存储与计算架构,以此作为搜索引擎
及其相关应用的基础支撑。优秀的云存储与云计算平台已经成为大型商业搜索引擎的核心竞争
力。
上面所述是搜索引擎如何获取并存储海量的网页相关信息,这些功能因为不需要实时计算,所
以可以被看做是搜索引擎的后台计算系统。搜索引擎的最重要目的是为用户提供准确全面的搜
索结果,如何响应用户查询并实时地提供准确结果构成了搜索引擎前台计算系统。
当搜索引擎接收到用户的查询词后,首先需要对查询词进行分析,希望能够结合查询词和用户
信息来正确推导用户的真正搜索意图。在此之后,首先在缓存中查找,搜索引擎的缓存系统存
储了不同的查询意图对应的搜索结果,如果能够在缓存系统找到满足用户需求的信息,则可以
直接将搜索结果返回给用户,这样既省掉了重复计算对资源的消耗,又加快了响应速度;如果
保存在缓存的信息无法满足用户需求,搜索引擎需要调用“网页排序”模块功能,根据用户的
查询实时计算哪些网页是满足用户信息需求的,并排序输出作为搜索结果。而网页排序最重要
的两个参考因素中,一个是内容相似性因素,即哪些网页是和用户查询密切相关的;另外一个
是网页重要性因素,即哪些网页是质量较好或者相对重要的,这点往往可以从链接分析的结果
获得。结合以上两个考虑因素,就可以对网页进行排序,作为用户查询的搜索结果。
除了上述的子功能模块,搜索引擎的“反作弊”模块成为日益重要的功能。搜索引擎作为互联
网用户的上网入口,对于网络流量的引导与分流至关重要,甚至可以说起了决定性的作用。于
是,各种“作弊”方式逐渐流行,通过各种手段将网页的搜索排名提高到与其网页质量不相称
的位置,这会严重影响用户的搜索体验。所以,如何自动发现作弊网页并对其处罚,成为搜索
引擎非常重要的组成部分。
文章来源: 黑市|灰产圈|黑产圈|一本黑|黑市商学院
共有 条评论