第1章 搜索引擎概述 1
1.1 搜索引擎的概念、原理及历史与发展 1
1.1.1 搜索引擎的概念 1
1.1.2 搜索引擎的原理 2
1.2 搜索引擎的历史与发展趋势 2
1.2.1 搜索引擎的发展史 3
1.2.2 搜索引擎的发展趋势 7
1.3 搜索引擎的分类 9
1.3.1 全文搜索引擎 10
1.3.2 目录索引搜索引擎 10
1.3.3 元搜索引擎 11
1.3.4 分布式搜索引擎 12
1.4 搜索引擎的关键技术 12
1.4.1 信息收集和存储技术 12
1.4.2 信息预处理技术 12
1.4.3 信息索引技术 13
1.5 主要搜索引擎介绍 14
1.5.1 谷歌搜索 14
1.5.2 雅虎搜索 17
1.5.3 百度搜索 19
1.5.4 北大天网搜索 22
1.6 小结 24
思考题 26
第2章 搜索引擎基础 27
2.1 搜索引擎的体系结构 27
2.1.1 搜索器 27
2.1.2 索引器 29
2.1.3 检索器 30
2.1.4 用户接口 30
2.2 搜索引擎的工作原理 31
2.2.1 网页搜集 31
2.2.2 网页处理 32
2.2.3 查询服务 34
2.3 搜索引擎的数据结构 35
2.3.1 存储结构 35
2.3.2 信息库 37
2.3.3 文本索引 37
2.3.4 词典 38
2.3.5 采样表 38
2.3.6 前向索引 38
2.3.7 后向索引 39
2.4 元搜索引擎 39
2.4.1 元搜索引擎的基本构成 40
2.4.2 元搜索引擎的分类 41
2.4.3 常用元搜索引擎介绍 42
2.4.4 元搜索引擎的特点 45
2.4.5 主要技术指标 46
2.5 个性化搜索引擎 47
2.5.1 系统模块及其功能 48
2.5.2 个性化搜索引擎的关键技术 49
2.6 智能搜索引擎 50
2.6.1 智能搜索引擎特征 50
2.6.2 智能搜索引擎主要技术 51
2.7 小结 52
思考题 54
第3章 网页抓取技术 55
3.1 搜索引擎爬虫 55
3.1.1 网络爬虫工作原理 55
3.1.2 开源网络爬虫简介 56
3.1.3 网页信息的抓取 58
3.2 搜索引擎爬虫的关键技术 60
3.2.1 网页抓取优先策略 60
3.2.2 深度优先策略 61
3.2.3 广度优先策略 62
3.2.4 最佳优先策略 63
3.2.5 不重复抓取策略 64
3.2.6 网页重访策略 67
3.2.7 网页抓取提速策略 68
3.2.8 Robots协议 69
3.3 小结 71
思考题 72
第4章 网页信息预处理技术 73
4.1 网页信息结构化 73
4.1.1 网页结构化的目标 73
4.1.2 建立DOM树 74
4.1.3 网页内容的获取 76
4.2 文本处理 77
4.2.1 词法分析 77
4.2.2 中文分词技术 78
4.2.3 无用词删除 83
4.2.4 词干提取 83
4.2.5 索引词选择 91
4.2.6 词典 91
4.3 PageRank算法 93
4.3.1 什么是PageRank 93
4.3.2 PageRank的算法 94
4.3.3 PageRank的特性 95
4.3.4 PageRank的迭代计算 96
4.3.5 网页级别的优化 97
4.4 小结 99
思考题 100
第5章 信息索引技术 101
5.1 顺排检索 101
5.1.1 表展开法 101
5.1.2 逻辑树展开法 104
5.1.3 BF算法 110
5.1.4 KMP算法 111
5.1.5 BM算法 113
5.2 倒排索引 116
5.2.1 倒排索引 116
5.2.2 倒排文档 117
5.2.3 逆波兰表达式 118
5.2.4 检索指令表的生成 120
5.2.5 检索实施 121
5.3 后缀数组索引 122
5.3.1 后缀树概念 122
5.3.2 后缀树原理 122
5.3.3 后缀树存储 124
5.3.4 后缀树的构造 124
5.3.5 后缀数组 126
5.3.6 后缀数组生成算法 127
5.4 文本压缩技术 128
5.4.1 基本概念 128
5.4.2 统计方法 128
5.4.3 字典方法 134
5.4.4 倒排文档压缩 139
5.5 小结 142
思考题 143
第6章 信息查询与评价技术 145
6.1 检索模型 145
6.1.1 经典模型 145
6.1.2 代数模型 150
6.2 检索方法 153
6.2.1 布尔检索 153
6.2.2 加权检索 153
6.2.3 全文检索 155
6.2.4 超文本检索 158
6.3 查询服务 161
6.3.1 查询器原理 161
6.3.2 搜索引擎检索过程 162
6.3.3 检索结果排序 165
6.3.4 自动摘要生成 168
6.4 相关性 171
6.4.1 相关性的特征 171
6.4.2 相关性类别 172
6.4.3 相关性模型 174
6.5 搜索引擎评价指标 177
6.5.1 有效性 177
6.5.2 查全率和查准率 177
6.5.3 其他评价指标 179
6.6 小结 180
思考题 182
第7章 多媒体信息检索技术 183
7.1 多媒体的基本概念 183
7.1.1 多媒体及多媒体技术 183
7.1.2 音频信息与检索特征 185
7.1.3 图形图像信息与检索特征 188
7.1.4 视频信息与检索特征 190
7.1.5 多媒体信息检索 194
7.2 多媒体数据压缩 197
7.2.1 多媒体压缩原理 197
7.2.2 多媒体压缩编码 199
7.3 多媒体内容的理解 200
7.3.1 分割 200
7.3.2 特征提取与降维 201
7.3.3 分类 201
7.4 多媒体信息检索的关键技术 202
7.4.1 信息模型 202
7.4.2 检索技术 202
7.4.3 查询语言 203
7.4.4 数据压缩和恢复 203
7.4.5 存储管理 203
7.4.6 同步技术 204
7.5 小结 204
思考题 206
第8章 搭建基于Lucene的搜索引擎 207
8.1 实例简介 207
8.1.1 搜索引擎的体系结构 208
8.1.2 网页搜集 208
8.1.3 网页预处理 209
8.1.4 查询服务 210
8.2 环境搭建与配置 210
8.2.1 JDK 1.6的安装与配置 212
8.2.2 Eclipse的安装与配置 214
8.2.3 Tomcat的安装与配置 221
8.2.4 Heritrix的安装与配置 223
8.3 网页搜集 230
8.3.1 设置Heritrix抓取任务 230
8.3.2 修改Heritrix源代码 236
8.3.3 抓取网页 239
8.4 网页预处理 241
8.4.1 原始网页的处理 242
8.4.2 建立简单的索引 259
8.4.3 为实例建立索引 266
8.5 查询服务 269
8.5.1 结构设计 269
8.5.2 查询设计 270
8.5.3 预搜索设计 275
8.5.4 页面设计 276
8.5.5 网页快照实现 283
8.5.6 部署到Tomcat 284
8.6 小结 286
实验 286
第9章 搭建基于Nutch的搜索引擎 287
9.1 Nutch简介 287
9.1.1 爬虫Crawler简介 287
9.1.2 Crawler工作流程 288
9.2 环境搭建与配置 289
9.2.1 开发工具简介 289
9.2.2 Tomcat的安装与配置 290
9.2.3 Cygwin的安装与配置 292
9.2.4 Nutch的安装与配置 294
9.2.5 将Nutch导入Eclipse 294
9.3 Nutch的初始配置及运行 296
9.3.1 修改Nutch基本配置 296
9.3.2 配置Eclipse运行参数 298
9.3.3 部署到Tomcat 301
9.3.4 搜索的实现 302
9.4 开发自己的搜索引擎平台 304
9.4.1 添加中文分词插件 304
9.4.2 网站抓取设置 310
9.4.3 网页快照设置 311
9.4.4 查询功能优化 312
9.4.5 系统部署 314
9.4.6 修改Nutch查询界面 314
9.5 结果与测试 316
9.5.1 测试结果 316
9.5.2 结果讨论 319
9.6 小结 320
实验 320
参考文献 321