第1章 引论 1
1.1 搜索引擎的过去 1
1.2 搜索引擎的现在 2
1.3 搜索引擎的未来 4
1.4 大数据与搜索引擎 6
1.4.1 搜索价值提升 6
1.4.2 用户价值提升 7
1.5 大数据与人工智能 7
1.5.1 人工智能发展 7
1.5.2 人工智能技术 9
1.6 本章小结 11
第2章 搜索引擎原理与技术 12
2.1 基本工作原理 12
2.2 基本模块结构 13
2.2.1 爬虫服务 14
2.2.2 索引服务 15
2.2.3 缓存服务 16
2.2.4 搜索服务 17
2.2.5 日志服务 19
2.3 技术概要 20
2.3.1 自然语言处理 20
2.3.2 知识图谱技术 21
2.3.3 海量数据存储 23
2.3.4 分布式计算 25
2.3.5 搜索排序技术 26
2.4 本章小结 27
第3章 自然语言处理框架 28
3.1 英文分词 28
3.2 中文分词 30
3.2.1 中文分词概述 30
3.2.2 基于词库的分词技术 31
3.2.3 基于条件随机场的中文分词 33
3.2.4 分词粒度 41
3.3 词性标注 41
3.3.1 隐马尔科夫模型概要 42
3.3.2 隐马尔科夫模型与词性标注 43
3.4 语义相似度 51
3.5 依存句法分析 53
3.5.1 依存句法分析概要 53
3.5.2 依存句法分析实现 56
3.6 情感倾向分析 59
3.7 文档关键词抽取 61
3.7.1 关键词抽取概述 61
3.7.2 基于TF-IDF算法 62
3.7.3 基于TextRank算法 64
3.8 文档句子相似度分析 67
3.8.1 句子相似度 68
3.8.2 文档相似度 70
3.9 文档核心句抽取 71
3.10 聚类分类 74
3.10.1 文本分类 75
3.10.2 文本聚类 80
3.11 语种检测 84
3.12 本章小结 87
第4章 构建大数据存储引擎 88
4.1 架构体系 89
4.1.1 结构概要 89
4.1.2 服务器上线 92
4.1.3 服务器下线 92
4.1.4 数据读取 93
4.2 数据模型 94
4.3 数据压缩 96
4.4 负载均衡 97
4.5 数据存储逻辑视图 100
4.6 本章小结 103
第5章 构建分布式实时计算 104
5.1 概述 104
5.2 设计架构 106
5.2.1 设计思想 106
5.2.2 基本框架 108
5.3 运行模式 110
5.4 负载均衡 111
5.5 通信设计 112
5.5.1 基本方式 113
5.5.2 分布式远程服务调用 113
5.6 容灾恢复 114
5.7 数据容错原理 115
5.8 数据处理设计示例 117
5.9 本章小结 118
第6章 分布式可扩展爬虫 119
6.1 爬虫体系架构 119
6.1.1 主从分布式结构爬虫 120
6.1.2 对等分布式结构爬虫 120
6.1.3 基于分布式计算平台爬虫 121
6.2 网页解析 122
6.2.1 状态码处理 123
6.2.2 链接去重 123
6.2.3 广告识别 125
6.2.4 网站地图 128
6.2.5 非网页数据获取 129
6.2.6 网页去重 130
6.2.7 链接提取 134
6.2.8 爬虫协议 135
6.3 网页结构化 137
6.3.1 网页的编码信息 137
6.3.2 网页的正文信息 138
6.3.3 网站的关键词信息 142
6.3.4 网站的标题 142
6.3.5 网页的发布时间 144
6.3.6 网站语言检测 144
6.3.7 其他结构化数据 145
6.4 网页抓取策略 146
6.5 爬虫权限应对 147
6.6 深网抓取 150
6.7 抓取更新策略 151
6.8 本章小结 153
第7章 大数据构建知识图谱 154
7.1 概述 154
7.2 搜索引擎与知识图谱 155
7.3 可靠数据源选择 157
7.4 实体抽取 158
7.5 关系抽取 159
7.5.1 关系抽取概述 160
7.5.2 隐藏关系抽取 161
7.5.3 结构化确定关系抽取 164
7.5.4 非结构化确定关系抽取 166
7.6 知识图谱检测 171
7.6.1 实体关系修正 171
7.6.2 实体对齐整合 172
7.6.3 实体歧义分析 174
7.7 知识推理与计算 175
7.7.1 知识推理 175
7.7.2 知识计算 176
7.8 知识聚类 179
7.9 智能搜索实现 181
7.9.1 模式匹配 181
7.9.2 知识拆解 182
7.9.3 合并求解 184
7.10 智能搜索扩展 186
7.10.1 常识性智能搜索 186
7.10.2 实时信息智能搜索 187
7.10.3 可交互式智能搜索 187
7.11 本章小结 189
第8章 索引构建机制 190
8.1 倒排索引 190
8.1.1 倒排索引概述 191
8.1.2 索引结构 192
8.1.3 构建过程 194
8.1.4 排序规则 195
8.1.5 索引压缩 196
8.1.6 更新策略 202
8.2 分布式存储 202
8.2.1 存储划分方式 203
8.2.2 存储平衡策略 204
8.3 存储索引 209
8.3.1 二叉搜索树 210
8.3.2 B树 211
8.3.3 B+树 213
8.3.4 B+树与文件索引 214
8.4 字典树索引 216
8.4.1 字典树索引概述 217
8.4.2 字典树索引构建 219
8.4.3 字典树查询优化 221
8.5 本章小结 221
第9章 搜索服务构建 223
9.1 概述 223
9.1.1 体系结构 223
9.1.2 七何分析法 224
9.1.3 搜索语法 225
9.1.4 相关性排序 227
9.1.5 不安全信息过滤 231
9.2 大数据分布式缓存 235
9.2.1 缓存结构设计 235
9.2.2 缓存更新策略 236
9.3 文本纠错算法 237
9.3.1 中文文本纠错 237
9.3.2 英文文本纠错 241
9.4 结果显示算法 242
9.4.1 动态摘要 243
9.4.2 关键词高亮算法 246
9.4.3 网页快照 250
9.5 搜索智能提示 250
9.6 网页排序 254
9.6.1 基于PageRank的网页重要性评价 254
9.6.2 基于Hits算法的网页权威性评价 257
9.6.3 Hilltop算法 259
9.6.4 网页作弊评价 260
9.6.5 网页排序调试 263
9.7 个性化搜索 264
9.7.1 个性化搜索示例 264
9.7.2 人工神经网络与个性化搜索 265
9.7.3 地理位置搜索 266
9.8 图片搜索 271
9.8.1 基于内容的图片搜索 271
9.8.2 基于文本的图片搜索 272
9.9 搜索与广告 274
9.9.1 广告投放策略 275
9.9.2 基于User-Based协同过滤的广告投放 275
9.9.3 基于Item-Based协调过滤的广告投放 277
9.9.4 基于混合模式广告投放 278
9.9.5 广告投放评价 279
9.10 搜索引擎评价 282
9.10.1 搜索评价概述 282
9.10.2 基于准确率、召回率及F值评价 283
9.10.3 归一化折扣累计增益 285
9.11 本章小结 288
第10章 基于用户日志的反馈学习 290
10.1 基于用户搜索词语的分析 290
10.1.1 发现搜索词的价值 291
10.1.2 发现不明意图下的用户行为 292
10.2 基于用户点击日志的分析 293
10.2.1 时间与搜索意图的关系 293
10.2.2 地理位置与搜索意图的关系 294
10.2.3 点击日志与同义词 296
10.2.4 点击日志与词语权重 297
10.2.5 点击日志与新词分类 298
10.2.6 点击日志与知识图谱 300
10.2.7 点击日志与网页重排序 301
10.2.8 点击日志与网页评价 303
10.3 基于用户的特征分析 304
10.3.1 用户跟踪 305
10.3.2 用户群体特征 306
10.3.3 用户个体特征 308
10.4 本章小结 309