第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搜索引擎的分类10 1.3.1全文搜索引擎11 1.3.2目录索引搜索引擎11 1.3.3元搜索引擎12 1.3.4分布式搜索引擎13 1.4搜索引擎的关键技术13 1.4.1信息收集和存储技术13 1.4.2信息预处理技术13 1.4.3信息索引技术14 1.5主要搜索引擎介绍15 1.5.1谷歌(Google)搜索15 1.5.2雅虎(Yahoo!)搜索19 1.5.3百度(Baidu)搜索21 1.5.4360搜索24 小结25 思考题26 第2章搜索引擎基础/28 2.1搜索引擎的体系结构28 2.1.1搜索器28 2.1.2索引器30 2.1.3检索器31 2.1.4用户接口31 2.2搜索引擎的工作原理32 2.2.1网页搜集32 2.2.2网页处理33 2.2.3查询服务35 2.3搜索引擎的数据结构36 2.3.1存储结构36 2.3.2信息库38 2.3.3文本索引39 2.3.4词典39 2.3.5采样表39 2.3.6前向索引40 2.3.7后向索引40 2.4元搜索引擎41 2.4.1元搜索引擎的基本构成41 2.4.2元搜索引擎的分类43 2.4.3常用元搜索引擎介绍44 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 小结52 思考题53 搜索引擎技术与应用开发目录第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网页重访策略68 3.2.7网页抓取提速策略69 3.2.8Robots协议70 小结72 思考题73 第4章网络爬虫开发技术/74 4.1网络爬虫的常用技术74 4.1.1网络爬虫工作流程74 4.1.2网络请求技术75 4.1.3网页抓取技术80 4.1.4其他处理技术84 4.2正则表达式87 4.2.1什么是正则表达式87 4.2.2正则表达式基础知识88 4.2.3正则表达式常见函数90 4.2.4正则表达式的简单使用92 4.3网络爬虫常用框架95 4.3.1Scrapy爬虫框架95 4.3.2Crawley爬虫框架100 4.3.3PySpider爬虫框架101 4.3.4Portia爬虫框架106 4.4网络爬虫实现技术107 4.4.1爬虫伪装技术107 4.4.2爬虫定向爬取技术110 4.4.3博客类爬虫的实现技术112 小结114 思考题115 第5章网页信息预处理技术/117 5.1网页信息结构化117 5.1.1网页结构化的目标117 5.1.2建立DOM树118 5.1.3网页内容的获取120 5.2文本处理121 5.2.1词法分析121 5.2.2中文分词技术122 5.2.3无用词删除127 5.2.4词干提取128 5.2.5索引词选择135 5.2.6词典136 5.3PageRank算法137 5.3.1什么是PageRank137 5.3.2PageRank的算法138 5.3.3PageRank的特性140 5.3.4PageRank的迭代计算141 5.3.5网页级别的优化142 小结144 思考题145 第6章信息索引技术/146 6.1顺排检索146 6.1.1表展开法146 6.1.2逻辑树展开法149 6.1.3BF算法155 6.1.4KMP算法156 6.1.5BM算法158 6.2倒排检索161 6.2.1倒排索引161 6.2.2倒排文档162 6.2.3逆波兰表达式164 6.2.4检索指令表的生成166 6.2.5检索实施167 6.3后缀数组索引168 6.3.1后缀树概念168 6.3.2后缀树原理168 6.3.3后缀树存储170 6.3.4后缀树的构造170 6.3.5后缀数组172 6.3.6后缀数组生成算法173 6.4文本压缩技术174 6.4.1基本概念174 6.4.2统计方法174 6.4.3字典方法180 6.4.4倒排文档压缩186 小结188 思考题190 第7章信息查询与评价技术/192 7.1检索模型192 7.1.1经典模型192 7.1.2代数模型197 7.2检索方法200 7.2.1布尔检索200 7.2.2加权检索201 7.2.3全文检索202 7.2.4超文本检索206 7.3查询服务209 7.3.1查询器原理209 7.3.2搜索引擎检索过程210 7.3.3检索结果排序213 7.3.4自动摘要生成216 7.4相关性219 7.4.1相关性的特征219 7.4.2相关性类别220 7.4.3相关性模型222 7.5搜索引擎评价指标225 7.5.1有效性225 7.5.2查全率和查准率225 7.5.3其他评价指标226 小结228 思考题230 第8章多媒体信息检索技术/231 8.1多媒体的基本概念231 8.1.1多媒体及多媒体技术231 8.1.2音频信息与检索特征233 8.1.3图形图像信息与检索特征236 8.1.4视频信息与检索特征239 8.1.5多媒体信息检索242 8.2多媒体数据压缩246 8.2.1多媒体压缩原理246 8.2.2多媒体压缩编码247 8.3多媒体内容的理解248 8.3.1分割248 8.3.2特征提取249 8.3.3分类250 8.4多媒体信息检索的关键技术250 8.4.1信息模型250 8.4.2检索技术251 8.4.3查询语言251 8.4.4数据压缩和恢复251 8.4.5存储管理252 8.4.6同步技术252 小结252 思考题254 第9章搭建基于Lucene的搜索引擎/255 9.1实例简介255 9.1.1搜索引擎的体系结构255 9.1.2网页搜集257 9.1.3网页预处理257 9.1.4查询服务258 9.2环境搭建与配置259 9.2.1JDK 1.6的安装与配置260 9.2.2Eclipse的安装与配置262 9.2.3Tomcat的安装与配置271 9.2.4Heritrix的安装与配置274 9.3网页搜集282 9.3.1设置Heritrix抓取任务282 9.3.2修改Heritrix源代码288 9.3.3抓取网页292 9.4网页预处理295 9.4.1原始网页的处理295 9.4.2建立简单的索引315 9.4.3为实例建立索引322 9.5查询服务327 9.5.1结构设计327 9.5.2查询设计327 9.5.3预搜索设计334 9.5.4页面设计335 9.5.5网页快照实现342 9.5.6部署到Tomcat344 小结346 实验346 参考文献/348