搜索引擎基础架构概述 搜索引擎的分类有哪些( 二 )


横向行业一般指跨行业,包含有多个领域或行业;而垂直行业特指某个行业或者某个领域 。
理解了垂直行业,我们就不难理解垂直搜索引擎了 。垂直搜索引擎是近年来新兴起的一种搜索引擎,不同于通用的网页搜索引擎,垂直搜索专注于特定的搜索领域和搜索需求(例如:机票搜索、旅游搜索、生活搜索、小说搜索、视频搜索、购物搜索等等),在其特定的搜索领域有更好的用户体验 。相比通用搜索动辄数千台检索服务器,垂直搜索需要的硬件成本低、用户需求特定、查询的方式多样 。比较典型的垂直搜索引擎代表有,去哪儿网、携程等 。
5)其他类目的搜索引擎
除了上述四类搜索引擎以外,还有集合式搜索引擎、门户搜索引擎以及免费链接式搜索引擎,这里就不一一详细介绍了 。
2. 搜索引擎的基础架构
一个优秀的搜索引擎需要复杂的架构和算法,以此来支撑对海量数据的获取、存储,以及对用户查询的快速而准确地响应 。从架构层面,搜索引擎需要能够对以百亿计的海量网页进行获取、存储、处理的能力,同时要保证搜索结果的质量 。
构建一个搜索引擎的基础架构,要考虑如下三个问题:
如何获取、存储并计算如此海量的数据?
如何快速响应用户的査询?
如何使得搜索结果能够满足用户的信息需求?
下图是一个通用的搜索引笨架构示意图:

搜索引擎基础架构概述 搜索引擎的分类有哪些

文章插图
文章插图
搜索引擎基础架构概述 搜索引擎的分类有哪些

文章插图
文章插图
从上述的搜索引擎架构图中,我们可以看出一个完整搜索引擎架构(全文搜索引擎为例)需要包含的三大块(我们一开始就说到的):
1)搜集信息:这一阶段是基本的数据收录阶段,主要任务就是构建网页数据库 。该阶段主要依靠网络爬虫技术搜集全网的数据,并进行收录,这一阶段还包括网页去重的过程,主要利用dedup技术 。
2)组织和处理信息:这里最为重要的一个环节就是构建索引,其主要的技术为倒排索引技术 。当然,该阶段还有建立连接关系和防作弊技术 。
3)展示信息:搜索引擎根据用户的查询词(query)来进行数据库检索,然后根据内容、链接匹配度和特定的排序算法将结果展示给用户 。目前常用的排序算法主要为Learn2Rank的排序方法以及GBRank算法 。
下面我们针对每一个环节进行具体的阐述 。
1)网页爬取和收录
网络爬虫技术是网页爬取的核心技术,我们可以通过编写一定的程序或者脚本来对互联网的信息进行抓取 。网络爬虫技术的详细介绍会在之后的博文中具体呈现,这里不再细述 。在网页抓取之后,我们要构建相应的数据库来存储我们爬取的网页信息 。但是互联网的信息具有冗余性,主要原因是各大网站也都会在后台进行爬虫爬取,他们也会通过爬虫来检测一些热点的内容或者文章,然后爬取其信息并对格式进行重新的组织,但其实网页的内容几乎都是一致的 。所以在收录爬虫爬取的网页信息之前,我们还要加入一个关键的环节——网页去重,来确保我们数据库中网页的唯一性 。
2)建立索引
在抓取了网页的信息之后,我们需要对网页的信息进行解析,抽取到网页的主题内容和类别信息 。这就是我们通常所说的网页解析,其主要涉及的技术为文本识别和文本分类技术 。网页解析后的输出往往是一些结构化的信息(每个网页的信息完整度是不同的,我们需要统一对数据进行结构化操作),一般的结构化信息包括网页的URL、网页编码、网页标题、作者、生成时间、类别信息、摘要等等 。在获取了网页结构化信息后,就要构建相应的索引了 。为了加快响应用户査询的速度,网页内容通过“倒排索引”这种高效查询数据结构来保存,而网页之间的链接关系也会予以保存 。之所以要保存链接关系,是因为这种关系 在网F相关性排序阶段是可利用的,通过“链接分析”可以判断页面的相对重要性,对于为用 户提供准确的搜索结果帮助很大 。