架构工作专题

搜索引擎的历史和技术架构

2018-01-07  本文已影响6人  雨林木风博客

近段时间要学习搜索引擎技术,为了以后翻阅方便,就把自己学习到的东西整理一下!

搜索引擎的历史发展

学习每一项技术,都是要从这项技术的历史说起,很多人不喜欢看关于技术的历史叙述,感觉和技术本身的内容无关,看了纯属是浪费时间,其实不然!
我们从一项技术的历史里边可以了解这项技术的发展过程,对于该技术从开始的简单到后面变得复杂这一变化过程更加的清楚,有助于我们更加深刻的理解该技术!
现在我们扯回到正题上,说一说搜索引擎的历史,看看搜索引擎是怎么从一开始的简单玩具一步步发展成现在非常复杂的巨无霸的!搜索引擎技术是目前互联网技术中最具技术含量的技术之一,看看它都经历了哪些阶段。

史前时代:分类目录的一代

最具代表的是雅虎,雅虎估计好多人不太熟悉了,我就举个国内相关的例子吧,就是hao123,它就是一个页面,上面是各种优质网站的链接,通过人工收集整理,把属于各个类别的高质量网站或者网页分门别类罗列,用户可以通过点击这些链接跳到自己想去的网站,几乎没有任何技术含量可言。。。

分类目录举例

第一代:文本检索的一代

主要是使用信息检索模型,利用布尔模型、向量空间模型或者概率模型来计算用户的查询关键词和网页文本内容的相关程度。相比分类目录已经进步相当多了,但是体验依然不是很好。因为没有对网页之间丰富链接关系进行利用。

第二代:链接分析的一代

这代搜索引擎运用了网页之间的链接关系,并深入挖掘和利用了网页链接所代表的含义,改善了搜索的质量。网页链接代表了一种推荐关系,被推荐次数越多的网页就代表它越重要,具有代表性。

这里边最具有代表性的就是Google的PageRank链接分析技术,现在所有的商业搜索引擎都使用了链接分析技术。但是这代搜索引擎依然有一些缺点,就是千人一面,不同的用户只要输入的搜索词一样,那么得到的搜索结果一定也是一样的,在现在这个个性化十足的时代,显然体验已经不好了。还有一些网站为了提高自己的网站排名,针对链接分析技术想出了很多作弊手段。革命尚未成功,同志仍需努力!

第三代:用户中心的一代

现在的搜索引擎都在向着这个目标发展,这个属于第三代搜索引擎了(不算分类目录那个史前一代)。主要是以理解用户需求为核心。不同用户即使是输入同一个查询关键词,可能目的也不同。比如同样是输入“苹果”,apple果粉肯定是想要得到关于苹果电子产品的信息,而一个果农则是想要得到能吃的那个苹果的信息。即使是同一个人输入相同的查询关键词,但是因处于时间,地点的不同而发生需求的变化。
现在解决方案包括获取用户发送查询关键词时的时间和地理位置以及用户过去发出的查询关键词及相应的点击记录等历史信息来挖掘用户的真实需求。

搜索引擎的技术架构

搜索引擎技术架构图

搜索引擎和推荐系统的最核心部分都是索引和排序。

根据这个架构图,介绍一下搜索引擎的每一部分:

首先是 爬虫系统 从互联网抓取网页数据,然后存储到本地,因为互联网上有很多网页资源是相同的(比如同一篇文章在凤凰网上有,在一点资讯平台上也有),所以需要把下载好的网页进行 去重处理。后面就要涉及到比较核心的部分了,对网页建立 倒排索引(现在不理解不要紧,后续博客一一介绍,看到新鲜概念,保持好奇心是学习技术的很好方法)和 链接关系 。由于网页数量太大,搜索引擎不仅需要保存网页原始信息,还要存储一些中间的处理结果,单个机器是干不了这个大活的,所以要有一个云存储和云计算平台来做支撑。

当用户输入查询关键词进行查询时,首先到缓存中去查找(世界上没有缓存解决不了的事情,如果有,那就两个缓存吧!哈哈),查到就返回,没查到就要进入下面的网页排序模块了,需要用倒排索引的内容相似性和链接关系的链接分析这两个因素来进行网页排序,最后把结果返回给用户。

鉴于现在作弊行为比较泛滥,所以反作弊模块也是必需的,如何自动发现作弊网页并对其处罚是搜索引擎技术的重要组成部分。

用这篇博客作为搜索引擎系列的开始吧,可以让各位同学大致了解一下搜索引擎的发展历史和整体技术架构,对搜索引擎有一个大致的认识!

后续博客会深入搜索引擎的各个关键模块和具体技术细节!欢迎关注!
上一篇下一篇

猜你喜欢

热点阅读