
| 改变全世界人们生活方式的“信息之门” |
| 张俊林:本科毕业于天津大学管理学院,2004年于中科院软件所直接获得博士学位并留所从事科研工作,研究方向为搜索引擎与自然语言处理。2005年在CSDN博客发布系列博文“搜索引擎设计实用教程:以百度为例”,在网络上获得了广泛转载与良好口碑。2006年作为联合创始人建立了智能信息聚合网站“玩聚网”,曾先后于阿里巴巴搜索技术中心任资深搜索技术研究员、房价网首席研究员,现任职于新浪微博,从事微博搜索与语义分析及推荐方面的研发工作。 .. << 查看详细 |
| 《这就是搜索引擎:核心技术详解》 第 1 章 搜索引擎及其技术架构 1 1.1 搜索引擎为何重要 1 1.1.1 互联网的发展 1 1.1.2 商业搜索引擎公司的发展 3 1.1.3 搜索引擎的重要地位 3 1.2 搜索引擎技术发展史 4 1.2.1 史前时代:分类目录的一代 4 1.2.2 第一代:文本检索的一代 5 1.2.3 第二代:链接分析的一代 5 1.2.4 第三代:用户中心的一代 5 1.3 搜索引擎的3 个目标 6 1.4 搜索引擎的3 个核心问题 7 1.4.1 3 个核心问题 7 1.4.2 与技术发展的关系 8 1.5 搜索引擎的技术架构 9 第2 章 网络爬虫 12 2.1 通用爬虫框架 12 2.2 优秀爬虫的特性 15 2.3 爬虫质量的评价标准 18 .2.4 抓取策略 19 2.4.1 宽度优先遍历策略(breath first) 20 2.4.2 非完全pagerank 策略(partial pagerank) 21 2.4.3 ocip 策略(online page importance computation) 23 2.4.4 大站优先策略(larger sites first) 23 2.5 网页更新策略 23 2.5.1 历史参考策略 24 2.5.2 用户体验策略 24 2.5.3 聚类抽样策略 24 2.6 暗网抓取(deep web crawling) 26 2.6.1 查询组合问题 27 2.6.2 文本框填写问题 29 2.7 分布式爬虫 30 2.7.1 主从式分布爬虫(master-slave) 31 2.7.2 对等式分布爬虫(peer to peer) 31 本章提要 34 本章参考文献 34 第3 章 搜索引擎索引 36 3.1 索引基础 36 3.1.1 单词—文档矩阵 37 3.1.2 倒排索引基本概念 37 3.1.3 倒排索引简单实例 39 3.2 单词词典 42 3.2.1 哈希加链表 42 3.2.2 树形结构 43 3.3 倒排列表(posting list) 44 3.4 建立索引 45 3.4.1 两遍文档遍历法(2-pass in-memory inversion) 45 3.4.2 排序法(sort-based inversion) 46 3.4.3 归并法(merge-based inversion) 49 3.5 动态索引 50 3.6 索引更新策略 51 3.6.1 完全重建策略(complete re-build) 51 3.6.2 再合并策略(re-merge) 52 3.6.3 原地更新策略(in-place) 55 3.6.4 混合策略(hybrid) 57 3.7 查询处理 57 3.7.1 一次一文档(doc at a time) 58 3.7.2 一次一单词(term at a time) 59 3.7.3 跳跃指针(skip pointers) 60 3.8 多字段索引 62 3.8.1 多索引方式 62 3.8.2 倒排列表方式 63 3.8.3 扩展列表方式(extent list) 64 3.9 短语查询 64 3.9.1 位置信息索引(position index) 65 3.9.2 双词索引(nextword index) 66 3.9.3 短语索引(phrase index) 67 3.9.4 混合方法 67 3.10 分布式索引(parallel indexing) 68 3.10.1 按文档划分(document partitioning) 69 3.10.2 按单词划分(term partitioning) 70 3.10.3 两种方案的比较 72 本章提要 73 本章参考文献 73 第4 章 索引压缩 76 4.1 词典压缩 76 4.2 倒排列表压缩算法 78 4.2.1 评价索引压缩算法的指标 79 4.2.2 一元编码与二进制编码 79 4.2.3 elias gamma 算法与elias delta 算法 81 4.2.4 golomb 算法与rice 算法 81 4.2.5 变长字节算法(variable byte) 83 4.2.6 simplex 系列算法 84 4.2.7 pfordelta 算法 86 4.3 文档编号重排序(docid reordering) 89 4.4 静态索引裁剪(static index pruning) 93 4.4.1 以单词为中心的索引裁剪 94 4.4.2 以文档为中心的索引裁剪 96 本章提要 97 本章参考文献 97 第5 章 检索模型与搜索排序 99 5.1 布尔模型(boolean model) 101 5.2 向量空间模型(vector space model) 102 5.2.1 文档表示 102 5.2.2 相似性计算 104 5.2.3 特征权重计算 106 5.3 概率检索模型 108 5.3.1 概率排序原理 108 5.3.2 二元独立模型(binary independent model) 110 5.3.3 bm25 模型 113 5.3.4 bm25f 模型 115 5.4 语言模型方法 116 5.5 机器学习排序(learning to rank) 119 5.5.1 机器学习排序的基本思路 120 5.5.2 单文档方法(pointwise approach) 121 5.5.3 文档对方法(pairwise approach) 122 5.5.4 文档列表方法(listwise approach) 123 5.6 检索质量评价标准 125 5.6.1 精确率与召回率 126 5.6.2 p@10 指标 127 5.6.3 map 指标(mean average precision) 128 本章提要 129 本章参考文献 129 第6 章 链接分析 131 6.1 web 图 131 6.2 两个概念模型及算法之间的关系 133 6.2.1 随机游走模型(random surfer model) 133 6.2.2 子集传播模型 135 6.2.3 链接分析算法之间的关系 136 6.3 pagerank 算法 137 6.3.1 从入链数量到pagerank 137 6.3.2 pagerank 计算 138 6.3.3 链接陷阱(link sink)与远程跳转(teleporting) 139 6.4 hits 算法(hypertext induced topic selection) 140 6.4.1 hub 页面与authority 页面 140 6.4.2 相互增强关系 141 6.4.3 hits 算法 142 6.4.4 hits 算法存在的问题 144 6.4.5 hits 算法与pagerank 算法比较 145 6.5 salsa 算法 146 6.5.1 确定计算对象集合 146 6.5.2 链接关系传播 148 6.5.3 authority 权值计算 150 6.6 主题敏感pagerank(topic sensitive pagerank) 152 6.6.1 主题敏感pagerank 与pagerank 的差异 152 6.6.2 主题敏感pagerank 计算流程 153 6.6.3 利用主题敏感pagerank 构造个性化搜索 156 6.7 hilltop 算法 156 6.7.1 hilltop 算法的一些基本定义 157 6.7.2 hilltop 算法 158 6.8 其他改进算法 162 6.8.1 智能游走模型(intelligent surfer model) 162 6.8.2 偏置游走模型(biased surfer model) 163 6.8.3 phits 算法(probability analogy of hits) 163 6.8.4 bfs 算法(backward forward step) 163 本章提要 164 本章参考文献 164 第7 章 云存储与云计算 166 7.1 云存储与云计算概述 167 7.1.1 基本假设 167 7.1.2 理论基础 168 7.1.3 数据模型 170 7.1.4 基本问题 170 7.1.5 google 的云存储与云计算架构 171 7.2 google 文件系统(gfs) 173 7.2.1 gfs 设计原则 174 7.2.2 gfs 整体架构 174 7.2.3 gfs 主控服务器 176 7.2.4 系统交互行为 178 7.3 chubby 锁服务 179 7.4 bigtable 181 7.4.1 bigtable 的数据模型 181 7.4.2 bigtable 整体结构 183 7.4.3 bigtable 的管理数据 184 7.4.4 主控服务器(master server) 186 7.4.5 子表服务器(tablet server) 187 7.5 megastore 系统 191 7.5.1 实体群组切分 192 7.5.2 数据模型 193 7.5.3 数据读/写与备份 195 7.6 map/reduce 云计算模型 195 7.6.1 计算模型 196 7.6.2 整体逻辑流程 197 7.6.3 应用示例 198 7.7 咖啡因系统——percolator 199 7.7.1 事务支持 200 7.7.2 观察/通知体系结构 202 7.8 pregel 图计算模型 203 7.9 dynomo 云存储系统 206 7.9.1 数据划分算法(partitioning algorithm) 207 7.9.2 数据备份(replication) 208 7.9.3 数据读/写 208 7.9.4 数据版本控制 209 7.10 pnuts 云存储系统 210 7.10.1 pnuts 整体架构 211 7.10.2 存储单元 211 7.10.3 子表控制器与数据路由器 213 7.10.4 雅虎消息代理 213 7.10.5 数据一致性 214 7.11 haystack 存储系统 215 7.11.1 haystack 整体架构 216 7.11.2 目录服务 218 7.11.3 haystack 缓存 219 7.11.4 haystack 存储系统 219 本章提要 222 本章参考文献 222 第8 章 网页反作弊 224 8.1 内容作弊 224 8.1.1 常见内容作弊手段 225 8.1.2 内容农场(content farm) 226 8.2 链接作弊 227 8.3 页面隐藏作弊 230 8.4 web 2.0 作弊方法 231 8.5 反作弊技术的整体思路 232 8.5.1 信任传播模型 233 8.5.2 不信任传播模型 234 8.5.3 异常发现模型 234 8.6 通用链接反作弊方法 236 8.6.1 trustrank 算法 237 8.6.2 badrank 算法 238 8.6.3 spamrank 239 8.7 专用链接反作弊技术 240 8.7.1 识别链接农场 240 8.7.2 识别google 轰炸 241 8.8 识别内容作弊 241 8.9 反隐藏作弊 241 8.9.1 识别页面隐藏 241 8.9.2 识别网页重定向 242 8.10 搜索引擎反作弊综合框架 242 本章提要 244 本章参考文献 244 第9 章 用户查询意图分析 246 9.1 搜索行为及其意图 246 9.1.1 用户搜索行为 246 9.1.2 用户搜索意图分类 248 9.2 搜索日志挖掘 250 9.2.1 查询会话(query session) 250 9.2.2 点击图(click graph) 251 9.2.3 查询图(query graph) 252 9.3 相关搜索 253 9.3.1 基于查询会话的方法 253 9.3.2 基于点击图的方法 254 9.4 查询纠错 255 9.4.1 编辑距离(edit distance) 256 9.4.2 噪声信道模型(noise channel model) 257 本章提要 257 本章参考文献 258 第10 章 网页去重 259 10.1 通用去重算法框架 261 10.2 shingling 算法 262 10.3 i-match 算法 265 10.4 simhash 算法 268 10.4.1 文档指纹计算 269 10.4.2 相似文档查找 270 10.5 spotsig 算法 272 10.5.1 特征抽取 272 10.5.2 相似文档查找 273 本章提要 274 本章参考文献 274 第11 章 搜索引擎缓存机制 276 11.1 搜索引擎缓存系统架构 277 11.2 缓存对象 279 11.3 缓存结构 281 11.4 缓存淘汰策略(evict policy) 283 11.4.1 动态策略 284 11.4.2 混合策略 284 11.5 缓存更新策略(refresh policy) 285 本章提要 286 本章参考文献 287 第12 章 搜索引擎发展趋势 288 12.1 个性化搜索 288 12.2 社会化搜索 290 12.3 实时搜索 291 12.4 移动搜索 293 12.5 地理位置感知搜索 294 12.6 跨语言搜索 296 12.7 多媒体搜索 298 12.8 情境搜索 299 |
商品评论(0条)