读《搜索引擎技术基础》
为了更深入的了解与应用爬虫,花了一些时间读了清华大学和百度联合出版的《搜索引擎技术基础》。一直没有整理过这种专业性或技术类别的书,是因为涉及到的内容太多,不懂得也太多,根本整理不出来不如直接看书。但是对于这本书来说,本着了解的态度看,自然没有深究其中的某些晦涩的内容。下面以写下来的方式贯穿下自己的阅读所得。
整本书基本也是从搜索引擎的系统架构展开,讲述各个部分内容,在最后也涉及到了一些很有意思的垃圾网页识别技术等。
1.搜索引擎系统架构。
图
其中的关系:数据抓取获得文本和连接信息(也就是从网页中抽取的文本内容与网页中存在的链接),文本信息交给内容索引系统部分,链接交给链接分析系统部分。而查询作为人机交互部分利用上面两个子系统提供的信息检索出用户需求内容。
2.数据抓取子系统。
(1)典型的搜索引擎抓取环架构
图
(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.数据检索子系统。
了解检索者的意图,根据内容索引系统和链接分析系统获得检索结果。
读《搜索引擎技术基础》相关推荐
- 读《Android 安全架构深究》
Android 安全架构深究 安全是一个非常立体而丰富得概念.在不同的场景下,安全有着不同的含义. 比如对于网络传输,安全指的是传输的数据不会被其他人看到.篡改.伪造及仿冒,传输的数据不会遭到破坏,数 ...
- 《最强Android书 架构大剖析》读书笔记
文章目录 第一章 Android 体系结构的变革之路 1.2 Android系统源码目录 与Linux的异同 Android的框架 原生二进制可执行文件 Android 的原生库 核心(core)库 ...
- Android Jetpack架构组件之 Room(使用、源码篇)
2019独角兽企业重金招聘Python工程师标准>>> 1.前言 最近简单看了下google推出的框架Jetpack,感觉此框架的内容可以对平时的开发有很大的帮助,也可以解决很多开发 ...
- 抖音、美团等大厂千万级用户的Android客户端架构演进之路—
在移动开发中,对开发者来说不同的人具有不同的能力.就像读一本书一样,一千个读者,有一千个哈姆雷特.但不管怎样,只要你是个软件开发者你就必须学习windows或Linux等操作系统的运行原理.Andro ...
- Android 图形架构之一 ——概述
前言 本系列的文章,可以让你明白,一个View最终是如何显示到屏幕上的,从应用层到硬件抽象层.对分析app的卡顿,掉帧等 有很大帮助. 由于图形架构的涉及到的代码量很大,所以本篇先来个总体的概述,有个 ...
- Android display架构分析-SW架构分析(1-8)
参考: Android display架构分析二-SW架构分析 Android display架构分析三-Kernel Space Display架构介绍 Android display架构分析四-m ...
- 高通Android display架构分析
目录(?)[-] Kernel Space Display架构介绍 函数和数据结构介绍 函数和数据结构介绍 函数和数据结构介绍 数据流分析 初始化过程分析 User Space display接口 K ...
- [Android] Android MVP 架构下 最简单的 代码实现
Android MVP 架构下 最简单的 代码实现 首先看图: 上图是MVP,下图是MVC MVP和MVC的区别,在于以前的View层不仅要和model层交互,还要和controller层交互.而 ...
- Android系统架构-[Android取经之路]
摘要:本节主要来讲解Android的系统架构 阅读本文大约需要花费10分钟. 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! 欢 ...
- Android系统架构图及简单的系统架构介绍
2019独角兽企业重金招聘Python工程师标准>>> ndroid的系统架构和其操作系统一样,采用了分层的架构.从架构图看,android分为四个层,从高层到低层分别是应用程序层. ...
最新文章
- 北大AI公开课2019 | 微软亚洲研究院周明:NLP的进步将如何改变搜索体验?
- linux下编译wpa_supplicantnbsp;…
- pandas 或者字段值_Pandas 用法总结
- 第五章 数组、矩阵与广义表
- HDU 3264 Open-air shopping malls
- 【API进阶之路】无法想象!大龄码农的硬盘里有这么多宝藏
- golang 定义一个空切片_Golang切片 一个隐讳的坑
- android 获取service 实例化,在Activity中,如何获取service对象?a.可以通过直接实例化得到。b.可以通过绑定得到。c.通过star - 众答网问答...
- 冰点密码破解 — 强悍的调试器 SOFTICE
- 论文分享(2)MASAD: A Large-Scale Dataset for Multimodal Aspect-Based Sentiment Analysis
- Word中如何在指定页插入页眉(论文排版详细总结)
- mysql题 以下1-7_mysql练习题
- 【每日AI】什么是维数?
- 【Python】绘制三维立体图
- Ubuntu下Qt软件打包流程
- Oracle:错误码ORA-28040 的坑
- 【数据分析入门】R语言读写文本文件及RDATA文件
- 去除spire.doc去水印
- 【渝粤教育】国家开放大学2018年秋季 2019T统计学原理 参考试题
- 简单的35选7彩票系统