读《搜索引擎技术基础》

读《搜索引擎技术基础》_第1张图片

为了更深入的了解与应用爬虫,花了一些时间读了清华大学和百度联合出版的《搜索引擎技术基础》。一直没有整理过这种专业性或技术类别的书,是因为涉及到的内容太多,不懂得也太多,根本整理不出来不如直接看书。但是对于这本书来说,本着了解的态度看,自然没有深究其中的某些晦涩的内容。下面以写下来的方式贯穿下自己的阅读所得。


整本书基本也是从搜索引擎的系统架构展开,讲述各个部分内容,在最后也涉及到了一些很有意思的垃圾网页识别技术等。

1.搜索引擎系统架构。

读《搜索引擎技术基础》_第2张图片

其中的关系:数据抓取获得文本和连接信息(也就是从网页中抽取的文本内容与网页中存在的链接),文本信息交给内容索引系统部分,链接交给链接分析系统部分。而查询作为人机交互部分利用上面两个子系统提供的信息检索出用户需求内容。

2.数据抓取子系统。

(1)典型的搜索引擎抓取环架构
读《搜索引擎技术基础》_第3张图片

(2)在搜索引擎和网站之间的robots协议,其内容是网站根目录下的/robots.txt文件。主要语法一般是User_Agent和Disallow两项。
(3)异步I/O与同步I/O
同步I/O:在发送请求后阻塞,直到请求被响应,在等待过程中不消耗CPU资源,可以配合多进程/线程使用。性能低。
异步I/O:相对同步,请求后不等待响应,向下执行。响应通过状态通知或者回调方式通知调用者。
(4)爬虫抓取方式:累积式(时间段中不断抓取)与增量式(在一定网页基础上,以更新数据形式对网页集合中的过时网页重新抓取)。
(5)抓取优先级:广度优先(采用)、深度优先。
(6)链接去重方式:hash和Bloom Filter。由于链接数据量大,所以要考虑时间和空间特性。而后者在存储上通常只用hash方式的1/4或者1/8即可。
(7)网页存储技术。两种:分布式hash存储系统和基于BigTable的网页存储系统。
前者和数据库方式相比更简单、高效,支持key-value的查询方式。后者基于分布式文件系统上(GFS,HDFS),常见的有Google bigtable(c++),HBase(java)(apache)。

3.内容索引系统。

和其它部分关系:在数据抓取子系统中已经使用某种方式将爬取到的网页存储,但是为了检索子系统能够高效的检索到数据,需对数据进行有效的“组织”,这就是索引系统的作用,主要方式是正排和倒排索引。

4.链接分析系统。

使用网页之间的链接关系(使用数组表示)分析网页质量与扩展文档描述。page rank算法。

5.数据检索子系统。

了解检索者的意图,根据内容索引系统和链接分析系统获得检索结果。

你可能感兴趣的:(搜索引擎,系统架构)