因为工作原因以前写过搜索引擎,不过那还是在读这本书之前,最近工作面试问到了以前的项目,感觉自己写的搜索引擎好像差了不少,所以特意找这本书来补一补。以下内容相当于读书笔记,讲解可能很少,多图预警。
1. 搜索引擎架构:
2. 网络爬虫
- 从爬虫设计角度讲, 优秀的爬虫应该具备高性能, 良好的可扩展性、健壮性和友好性。
- 从用户体验角度考虑,对爬虫的工作效果评价标准包括:抓取网页覆盖率、抓取网页时新性和抓取网页重要性。
- 抓取策略(广度优先遍历策略、非完全连接分析策略、在线页面重要性计算策略、大站优先策略)、网页更新策略(历史参考策略、用户体验策略<聚类抽样策略)、暗网抓取(查询组合、文本框自动填写)和分布式策略(主从式、对等式)是爬虫系统重要的4个方面内容,基本决定了爬虫系统的质量和性能。
聚类抽样策略
文本框自动填写
分布式爬虫层级
主从分布式爬虫
对等分布式爬虫
3. 搜索引擎索引
- 倒排索引是搜索引擎用来快速查找包含某个单词的文档集合的数据结构
- 倒排索引由单词词典和所有词典对应的倒排列表构成
- 倒排列表由倒排列表项构成,一般倒排列表项包含文档ID、单词出现次数和单词在文档出现的位置,而文档ID则采取文档编号差值方式编码
- 3种常用的简历倒排索引的方法是:两遍文档遍历法、排序法、归并法
- 常用的索引更新策略有4种:完全重建策略、再合并策略、原地更新策略及混合策略
- 目前有两种常见的查询处理机制,一种被称作一次一文档方式,另一种被称为一次一单词方式
- 实现多字段索引有3种方式:多索引方式、倒排列表方式和扩展列表方式
- 较常见的支持短语查询的技术方法包括:位置信息索引、双词索引及短语索引3类,为了能够有效利用存储和计算资源,也可以将这三者结合使用
- 目前常用的分布式索引方案包括两种:按文档对索引划分和按单词对索引划分。
动态索引:
完全重建策略
再合并策略
合并增量索引和老索引内容
原地更新策略
原地更新索引合并
分布式索引——按文档划分
文档划分方式对用户查询的响应
分布式索引——按单词划分
单词划分方式对用户查询的响应
这本书12章,中间云存储和云计算部分我掌握的并不太好可能会花点时间,所以预计还是5次写完。