标题：搜索引擎基础教程
图书信息
作者：袁津生、李群 
丛书名称：高等院校信息技术规划教材
出版社：清华大学出版社  　　ISBN：9787302220497
定价：29.5元
印次：1-1
装帧：平装
印刷日期：2010-6-23
图书简介
本书从教学的角度出发，对搜索引擎的原理及开发技术进行了全面的介绍，内容包括搜索引擎的基本原理、网页抓取技术、信息预处理技术、信息索引技术、信息查询技术和多媒体信息检索技术。另外，本书还对搜索引擎开发技术进行了详细的讨论。
本书适合高等院校计算机科学与技术专业及相关专业的高年级学生和研究生阅读参考，也适合相关领域的工程技术人员参阅。
前言
网络改变了人们的思维，搜索改变了人们的生活。面对浩如烟海的网络资源，搜索引擎就好像是航船的指南针，引领着人们在网络中寻找自己想要的信息。不论是办公室工作人员、在校学生，还是科学研究人员，使用搜索引擎查询信息几乎成为每日必做的一件事情，搜索引擎已经成为人们的一项新的生活内容。
为了适应目前形势的发展，各个高校先后都开设了搜索引擎这门课程。我们编写这本书的目的就是系统地讨论和研究搜索引擎的基本理论，学会构建自己的搜索引擎。
全书较为系统地阐述了搜索引擎的基本概念以及相关的技术，总共分为9章。第1章全面地介绍了搜索引擎的概念、搜索引擎的发展、分类及建立搜索引擎的关键技术；第2章讨论了搜索引擎的体系结构、工作原理、搜索引擎的数据结构、元搜索引擎以及职能搜索引擎的概念；第3章介绍了网页抓取技术，主要内容包括搜索引擎爬虫的工作原理、爬虫使用的关键技术和Robots协议；第4章介绍了网页信息预处理技术，主要内容有网页信息结构化、文本处理技术、中文分词技术和PageRank算法；第5章介绍了信息索引技术，主要包括顺排检索、倒排索引、后缀数组索引和文本压缩技术；第6章介绍了信息查询与评价技术，主要包括信息检索的模型、常用的检索方法、查询服务以及相关性的评价和查全率和查准率等内容；第7章介绍了多媒体信息检索的基本概念，主要内容有多媒体的基本概念、多媒体数据的压缩、多媒体内容的理解以及多媒体信息检索的关键技术；第8章介绍了基于Lucene的搜索引擎开发技术，主要内容有搜索引擎开发实例简介、环境的搭建与配置、网页搜集技术、网页预处理技术和查询服务；第9章介绍了基于Nutch的搜索引擎开发技术， 主要内容有Nutch简介、环境的搭建与配置、Nutch的初始配置及运行、开发自己的搜索引擎平台。
希望本书的出版能够对搜索引擎的设计者、Web站点的管理员以及广大用户有所帮助，也希望它成为搜索引擎和信息检索有关领域的学生学习的参考书。
本书是作者在多年教学的基础上，参考若干资料整理而成的。本书对基本概念、基础知识的介绍力求简明扼要；各章相互配合并附有小结和习题，同时还有相关的实验。建议本课程为40学时，其中讲课30学时，实验10学时。
本书由袁津生、李群、蔡岳、程超然和张帆共同编写，其中，蔡岳和张帆编写了本书的第8章、程超然编写了本书的第9章、李群编写了本书的第7章并校阅了全部书稿。由于作者水平有限，书中难免有许多错误和不当之处，请读者批评指正。
编者
2010年3月
目录
第1章 搜索引擎概述11.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章 搜索引擎基础272.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章 网页抓取技术553.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章 网页信息预处理技术734.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 什么是PageRank93
4.3.2 PageRank的算法94
4.3.3 PageRank的特性95
4.3.4 PageRank的迭代计算96
4.3.5 网页级别的优化97
4.4 小结99
思考题100
第5章 信息索引技术1015.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章 信息查询与评价技术1456.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章 多媒体信息检索技术1837.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的搜索引擎2078.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 部署到Tomcat284
8.6 小结286
实验286
第9章 搭建基于Nutch的搜索引擎2879.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导入Eclipse294
9.3 Nutch的初始配置及运行296
9.3.1 修改Nutch基本配置296
9.3.2 配置Eclipse运行参数298
9.3.3 部署到Tomcat301
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
搜索引擎的概念
搜索引擎(search engine)是指根据一定的策略、运用特定的计算机程序从互联网上搜集信息，在对信息进行组织和处理后，为用户提供检索服务，将用户检索相关的信息展示给用户的系统。
搜索引擎的原理
抓取网页每个独立的搜索引擎都有自己的网页抓取程序（spider）。Spider顺着网页中的超链接，连续地抓取网页。被抓取的网页被称之为网页快照。由于互联网中超链接的应用很普遍，理论上，从一定范围的网页出发，就能搜集到绝大多数的网页。
处理网页搜索引擎抓到网页后，还要做大量的预处理工作，才能提供检索服务。其中，最重要的就是提取关键词，建立索引文件。其他还包括去除重复网页、分词（中文）、判断网页类型、分析超链接、计算网页的重要度/丰富度等。
提供检索服务用户输入关键词进行检索，搜索引擎从索引数据库中找到匹配该关键词的网页；为了用户便于判断，除了网页标题和URL外，还会提供一段来自网页的摘要以及其他信息。
搜索引擎的作用
搜索引擎是网站建设中针对“用户使用网站的便利性”所提供的必要功能，同时也是“研究网站用户行为的一个有效工具”。高效的站内检索可以让用户快速准确地找到目标信息，从而更有效地促进产品/服务的销售，而且通过对网站访问者搜索行为的深度分析，对于进一步制定更为有效的网络营销策略具有重要价值。
1、从网络营销的环境看，搜索引擎营销的环境发展为网络营销的推动起到举足轻重的作用；
2、从效果营销看，很多公司之所以可以应用网络营销是利用了搜索引擎营销；
3、就完整型电子商务概念组成部分来看，网络营销是其中最重要的组成部分，是向终端客户传递信息的重要环节。
什么是搜索引擎营销
搜索引擎营销，是英文Search Engine Marketing的翻译，简称为SEM。就是根据用户使用搜索引擎的方式，利用用户检索信息的机会尽可能将营销信息传递给目标用户。简单来说，搜索引擎营销就是基于搜索引擎平台的网络营销，利用人们对搜索引擎的依赖和使用习惯，在人们检索信息的时候尽可能将营销信息传递给目标客户。
搜索引擎营销的特点
1、搜索引擎营销方法与企业网站密不可分；
2、搜索引擎传递的信息只发挥向导作用；
3、搜索引擎营销是用户主导的网络营销方式；
4、搜索引擎营销可以实现较高程度的定位；
5、搜索引擎营销的效果表现为网站访问量的增加而不是直接销售；
6、搜索引擎营销需要适应网络服务环境的发展变化。