搜索引擎体系结构概述【课堂总结以及课后笔记】

2017-05-23  本文已影响0人  Ycres

引言

推荐教材

搜索引擎技术基础

关注搜索引擎的原因

  1. 互联网上最重要的应用系统
  2. 人类历史上最大规模的信息集散平台
  3. 学术界重要的研发平台
  4. 经济领域能够盈利的“生意”

搜索引擎发展历史(略)

搜索引擎体系结构概述

体系结构包括一组部件以及部件之间的联系。

对于搜索引擎而言,其体系结构是指为搜索引擎运行而设置的软硬件系统,以及软硬件系统之间的相互联系的总和。
为容纳万维网以爆炸式增长的数据,各大搜索引擎都使用规模浩繁的计算机集群系统对这些数据加以存储和处理。

搜索引擎简介的背后,是复杂的系统软硬件。

搜索引擎主要组成:

  1. 数据抓取子系统
  1. 内容索引子系统
  2. 链接结构分析子系统
  3. 内容检索子系统
搜索引擎系统架构示意图

数据抓取子系统的主要功能与性能需求

主要功能

具体来讲,数据抓取子系统工作的方式是一个“一传十,十传百,百传千万”的过程。首先,系统收集一部分热门程度和权威度都较高,同时具有较多超链接的网页(如网页导航类站点、门户类站点等),这部分站点被称为“种子网页集合”(Seed set,S)。随后,数据抓取子系统通过被称为“网络爬虫”(Spider,Crawler)的程序访问S中所有网页对应的超链接,抓取超链接对应的网页,构建S对应的超链接页面集合S1。进一步,爬虫访问S1中所有网页的超链接,抓取这些超链接对应的网页,构建S1对应的超链接页面集合S2,......,周而复始,抓取互联网上所有可以通过种子网页集合间接访问到的网页。其抓取原理的伪代码:

Spider(S)
{
  Get(S);
  S' = Resolve(S);
  Spider(S');
}
性能需求
1. 及时性

及时性方面的要求,是指数据抓取子系统需要通过对互联网数据的获取和更新,保证搜索引擎索引与网络数据的同步。

网页抓取的工作无时无刻不在进行,通过这种方式,才能保证数据抓取子系统能够及时地抓取到更新的内容,进而使搜索引擎索引到的内容与互联网内容一致。搜索引擎往往采取不同抓取更新频率的方法,保证数据集合总体的“新鲜度”维持在一个较高的水平。

2. 全面性

除了及时性方面的需求之外,数据抓取子系统在保证页面索引数量方面也有较高的性能需求。

随着越来越多的互联网数据资源以网络数据库的形式存在,当前数据抓取子系统在保证页面索引数量方面的主要需求转化为抓取互联网动态网页,或称为“暗网”(The Hidden Web,The Deep Web)

3. 高效性

系统运行效率是数据抓取子系统需要关注的另一个主要性能指标。如何利用有限的带宽资源(受到预算开支限制)抓取数据、满足用户使用搜索引擎的信息需求是数据抓取子系统的性能需求之一。

识别各类抓取陷阱(黑洞,鲁棒性)。

2.提升网络带宽的利用率U。
改进算法、使用并行抓取策略、改善网络速度减少抓取等待时间、充分合理利用被抓取网站的服务器和带宽资源(礼貌性)。
实际应用中,由于搜索引擎很难很难获得完整的被抓取网站的相关服务信息,因此搜索引擎与网页内容提供者之间往往通过“robots.txt”的抓取协议来协商抓取策略。
对于绝大多数搜索引擎的数据抓取系统而言,robots.txt是它们访问某网站的时候要查看的第一个文件。robots.txt文件告诉抓取子系统在服务器上什么文件是可以被抓取的,应该用什么样的方式才算是“礼貌”地抓取。
当抓取子系统访问一个站点时,它会首先检查该站点根目录下是否存在robots.txt,如果存在,抓取子系统就会按照该文件中的内容来确定访问的范围和访问方式;如果该文件不存在,则抓取子系统将不受限制地访问网站上所有没有被口令保护的页面。
常用的一些robots.txt协议语句:

User-agent://以下规则对哪些搜索引擎适用,“*”表示所有搜索引擎
Disallow://不允许访问的目录名,通常为私密内容、程序脚本、样式表等内容
Sitemap://指定可用于搜索引擎访问的内容
Crawl-delay://抓取时间间隔限制,按秒计算
对于网站所有者而言,如果合理利用robots.txt文件,可以既保证自己的网页内容被搜索引擎收录,又不会造成服务器负担过重。

内容索引子系统的主要功能与性能需求

主要功能
倒排索引结构

词项:词项是逻辑学中的基本概念之一,指逻辑分析的基本单元,英文为Term。搜索引擎与信息检索研究中的词项是指具有一定概念的构成文档的基本单元。

内容索引子系统的性能需求

对于搜索引擎而言,内容索引子系统的性能需求可以概括为:充分利用系统资源和高效完成索引服务。

内容检索子系统的主要功能与性能需求

主要功能

内容检索子系统的主要功能,是利用内容索引子系统提供的索引数据和链接结构分析子系统提供分析结果,按照用户的查询信息需求返回以相关度进行排序的结果列表,以便用户的进一步浏览和利用。

内容检索子系统与文本信息检索系统

搜索引擎与文本信息检索系统的重要差别:
1、搜索引擎对“相关性”的标准是与文本信息检索系统不同的,即两者的“标准答案”标注规则其实不同。
2、搜索引擎用户的信息需求往往是无法从查询关键词中直接推知的,而TREC评测标准中使用的查询关键词都带有详细的信息需求描述。
3、搜索引擎系统对内容检索系统的效率要求较高,文本信息检索系统采用的不少文本处理方法事实上无法满足实际服务的效率需求。

性能需求
1.相关性需求

搜索引擎结果的相关性:带有信息需求(Information Need,IN)的用户在使用搜索引擎时,某结果Ri的相关性是指该结果满足IN的程度。
内容检索子系统在相关性排序方面需要考虑的因素要远远多于传统的文本信息检索系统。为了能够使结果序列最大程度地满足用户的信息需求,内容检索子系统需要引入比传统文本信息检索系统多得多的排序因素。这些因素包括:结果页面本身的质量(结果页面来源网站的质量、是否高质量页面、是否垃圾页面)、结果页面的组织形式(用户是否能够很快地通过阅读页面内容获得必要的信息)、结果页面受欢迎的程度(有多少用户先前访问过该页面)、结果页面内容新颖的程度(页面更新周期,是否包含过期信息)等。

2.查询理解需求

内容检索子系统需要完成的另一项重要任务,是通过查询关键词理解查询背后的信息需求。
1、查询内容的歧义性问题
针对查询内容的歧义,面向结果页面集合的文本聚类技术经常被应用,以保证各类查询对应的歧义内容都能够在结果列表中出现。
2、查询对应的信息需求的歧义性
即使使用内容不包含歧义的关键词进行查询,搜索引擎用户的信息需求也可能是完全不同的。搜索引擎为确保各类信息需求都可以得到满足,必须分析用户的各种查询意图并尽量在结果中加以体现。
3、理解查询背后的信息需求的歧义
即使查询内容以及查询对应的信息需求类别都没有歧义,理解查询背后的信息需求也很困难。在“关键词查询+选择性浏览”的交互方式下,搜索引擎面对的查询是十分简单的字词组合。即使这些查询并不具有内容和信息需求层面的歧义,也会造成了不少查询信息需求表述不清的现象。

3.效率需求

链接结构分析子系统的主要功能与性能需求

与传统数据相比,互联网数据最大的特点就是其以超文本的形式进行组织,超文本除了包含用于规范文字显示格式的标签文字信息之外,更为重要的特性是其包含可以链接到其他字段或者文档的超文本链接,这使得超文本系统允许从当前阅读位置直接切换到超文本链接所指向的文字。这种链接蕴含的信息是传统数据中所不具有的,也是搜索引擎用以评价网络数据质量扩展网络文档描述的重要依靠,这两方面的功能主要是由链接结构分析子系统完成。

基于链接结构分析评价数据质量

互联网时代,每个用户的注意力都是宝贵的资源,理想状态下,各个网页都希望能够链接到有高质量内容的其他网页,以便提升自身的链接质量,更好地为用户获取信息服务。这样,真正具有高质量内容的网页自然会得到越来越多其他网页的链接;而真正以更好地为用户服务为己任的网页也会越来越多地链接到其他高质量网页。良性循环下去,就形成了高质量网页在链接结构关系中的特殊地位,而链接结构分析算法,就是通过这种特殊的地位区分网络数据的质量。

PageRank算法

基于链接结构分析扩展文档描述

基于链接结构分析扩展文档描述的方法,事实上是将不同原网页作者对同一目标网页的描述文字加以整合,这样,对于目标页面描述的“一家之言”(目标网页作者的描述)就变成了“百家争鸣”(目标网页作者以及多个源网页作者的描述)。
基于网页链接文本(anchor text)提高检索系统性能的尝试被多方面的研究成果证明是十分有效的 ,该方法也因此被广泛应用于搜索引擎的技术实践中。

链接结构分析子系统的效率需求

搜索引擎链接结构分析子系统所实现的两大主要功能(数据质量评估和扩展文档描述)都无需在线完成,因此链接结构分析子系统的实时性和效率要求相对其他几个子系统要略低一些。与之相对应的,数据质量评估方面的几种常用算法(如PageRank、HITS、TrustRank等)都采用迭代计算的方式,计算复杂度较大;而扩展文档描述时也需要进行链接描述文字从源网页到目的网页的重整过程,同样需要耗费较高的运算资源。

搜索引擎体系结构设计理念

上一篇 下一篇

猜你喜欢

热点阅读