前言
作者序
本书第1版出版到现在已经3年了。在这段不长的时光里,搜索引擎技术有了进一步的发展。其中比较突出的是,随着数据规模进一步增大,为提升用户体验,搜索引擎性能进一步优化;在更广泛的用户参与下,增强了基于用户行为进行效果改进的能力。这也使得本书有了改版以适应这些重大变化的必要。
基于此,本书第2版增加了搜索引擎性能调优、搜索引擎日志分析,以及基于学习进行排序优化三方面的内容,希望能让读者跟上搜索技术的发展潮流,在这一领域的前沿真切地感受到它的勃勃生机。
当前,搜索技术已经不再局限于搜索引擎本身,它所建立的一套驾驭互联网级别海量数据的架构和理念正日益扩展到整个信息技术领域。而随着世界的日益信息化、数字化、网络化,这些理念的深远影响还会进一步显现。这又将是一次新的科技浪潮。
时光流逝,却有如轮回。信息技术产业,甚至整个科技界,正是在这样的浪潮更迭中不断进步。从AT&T 的有线电话到IBM 的大型机,到Apple的PC机,到Intel的CPU,到Motorola的无线通信,到Microsoft的操作系统,到Cisco的路由器,到Google的搜索引擎,概莫能外。一次次浪潮,一个个产业巨擎,终将随自己的时代而去,但它们所带来的影响却将投射在人类文明的历史上,永不消逝。
至于搜索的浪潮究竟将持续多长时间,在整个IT史上留下怎样的一笔,只有时间才能告诉人们答案。此时此刻,置身其中,让我们打开书本,接受浪潮之巅的洗礼,走进搜索引擎。
关于本书作者
作者潘雪峰,毕业于中国科学院计算技术研究所,工学博士。研究兴趣包括多媒体内容分析、机器学习和互联网数据挖掘,现从事搜索引擎领域相关工作。
作者花贵春,目前在清华大学信息科学与技术国家实验室攻读博士学位,研究兴趣包括机器学习及其在搜索领域的应用。
作者梁斌,目前在清华大学信息科学与技术国家实验室攻读博士学位,研究兴趣包括大规模数据处理、搜索引擎和软件工程等。
致谢
作者们首先要特别感谢他们的妻子,感谢她们在繁忙的工作和学习之余,包揽了家里家外大大小小的事务,还在作者们有所懈怠的时候,从精神上给予莫大的支持和鼓励。正是她们无私的支持,才使本书得以面世。
感谢电子工业出版社计算机图书出版分社孙学瑛女士,她是推动本书完成的最为关键性的人物。她参与了此书创作的全过程,为笔者提供了有关图书市场的宝贵信息,使得本书更加面向读者。
感谢本书参考文献的作者们、搜索引擎研究界的学者们,以及为此书提出宝贵技术意见的业界同行,正是你们杰出的成就和无私的帮助,才使得本书有了写作的基础和必要。
由于作者水平有限,加之搜索领域的发展日新月异,书中不足及错误之处在所难免,敬请专家和读者给予批评指正。
潘雪峰、花贵春、梁斌
2011年2月
目录
第1章 引言
1.1 搜索引擎概述
1.1.1 目录式搜索引擎
1.1.2 全文搜索引擎
1.1.3 元搜索引擎(Meta-Search Engine)
1.2 搜索引擎的主要需求
1.2.1 快
1.2.2 全
1.2.3 准
1.2.4 稳
1.2.5 省
1.3 搜索引擎的4大系统
1.3.1 搜索引擎的体系结构
第2章 搜索引擎的下载系统
2.1 爬虫的发展历史
2.1.1 世界上第1个爬虫
2.1.2 爬虫的发展历程
2.2 万维网及其网页分析
2.2.1 蝴蝶结型的万维网
2.2.2 万维网的直径
2.2.3 万维网的规模及变化特征
2.2.4 网页的特征
2.3 有关爬虫的基本概念
2.3.1 爬虫
2.3.2 种子站点
2.3.3 URL
2.3.4 Backlinks
2.4 网页抓取原理
2.4.1 telnet和wget
2.4.2 从种子站点开始逐层抓取
2.4.3 不重复抓取策略
2.4.4 网页抓取优先策略
2.4.5 网页重访策略
2.4.6 Robots协议
2.4.7 其他应该注意的礼貌性问题
2.4.8 重要性网页优先抓取策略
2.4.9 抓取提速策略(合作抓取策略)
2.5 网页库
2.6 下载系统回顾及未来发展
参考文献
第3章 搜索引擎的分析系统
3.1 知识准备
3.1.1 HTML语言
3.1.2 锚文本(anchor text)
3.1.3 半结构化数据(semi-structured data)
3.2 信息抽取及网页信息结构化
3.2.1 网页结构化的目标
3.2.2 建立HTML标签树
3.2.3 通过投票方法得到正文
3.2.4 网页结构化过程回顾
3.3 网页查重
3.3.1 网页查重技术发展历史
3.3.2 网页查重实现方法
3.4 中文分词
3.4.1 什么是中文分词
3.4.2 通过字典实现分词
3.4.3 基于统计的分词方法
3.5 PageRank
3.5.1 PageRank的来由
3.5.2 PageRank的基本想法
3.5.3 PageRank的计算公式
3.5.4 PageRank的计算方法
3.6 分析系统结构图
参考文献
第4章 搜索引擎的索引系统
4.1 知识准备
4.1.1 信息
4.1.2 索引
4.1.3 倒排索引、倒排表、临时倒排文件、最终倒排文件
4.1.4 其他概念
4.2 全文检索
4.3 文档编号
4.3.1 编号的本质
4.3.2 文档编号的方法
4.3.3 游程编码
4.4 倒排索引
4.4.1 经典的倒排索引
4.4.2 正排索引(前向索引)
4.4.3 倒排索引
4.5 数据规模的估计
4.5.1 齐普夫法则
4.5.2 布尔检索模型下的索引规模估计
4.6 涉及存储规模的一些计算
4.6.1 正排表与倒排表的合并
4.6.2 多个临时倒排文件的归并
4.6.3 倒排索引分布式存储
4.6.4 倒排文件缓存
4.6.5 倒排索引词典统计信息的计算
4.7 倒排索引文件的创建过程
4.7.1 创建倒排表
4.7.2 计算统计信息
参考文献
第5章 搜索引擎的查询系统
5.1 知识准备
5.1.1 什么是信息熵
5.1.2 检索和查询的区别
5.1.3 检索词和查询词的区别
5.1.4 自动文本摘要(Automatic Text Summarization)
5.2 网页信息检索
5.2.1 早期的检索模型
5.2.2 向量空间模型(Vector Space Models)
5.2.3 关键词权重的量化方法TF/IDF
5.2.4 搜索引擎采用的检索模型
5.2.5 多文档列表求交计算
5.2.6 检索结果排序
5.2.7 堆排序
5.3 中文自动摘要
5.3.1 自动摘要的发展历史
5.3.2 自动摘要的含义和实现
5.4 生成搜索结果页
5.4.1 生成搜索结果页
5.5 搜索结果页的缓存
5.6 推测用户查询意图
5.6.1 查询分类
5.6.2 推测信息类、事物类的查询意图
5.7 查询系统的当前热点和发展方向
5.7.1 查询系统的当前热点
5.7.2 查询系统的发展方向
参考文献
第6章 搜索引擎日志分析
6.1 简介
6.1.1 人机交互的记录——日志
6.1.2 分析搜索引擎日志的意义
6.1.3 本章的主要内容
6.2 知识准备
6.2.1 二分图模型(Bipartite Model)
6.2.2 图模型(graphical model)
6.2.3 LDA(Latent Dirichlet Allocation)模型
6.2.4 随机游走 (Random Walk)
6.2.5 小结
6.3 查询日志分析
6.3.1 查询日志的内容
6.3.2 查询词频统计
6.3.3 查询串提示(Suggestion)
6.3.4 命名实体(Named Entity)类别识别
6.3.5 小结
6.4 点击日志分析
6.4.1 点击日志的内容
6.4.2 查询串提示(Suggestion)再分析
6.4.3 查询和结果类别属性传递
6.4.4 搜索结果相似性度量
6.4.5 查询结果排序
6.4.6 点击数据的稀疏性
6.4.7 小结
6.5 隐私问题
6.5.1 日志的两面性
6.5.2 日志的安全使用
6.5.3 小结
6.6 本章总结
参考文献
第7章 排序学习(Learning to Rank)
7.1 排序概述
7.2 传统的排序模型
7.2.1 查询相关的排序模型
7.2.2 查询无关的排序模型
7.3 排序学习简介以及研究现状
7.3.1 排序学习简介
7.3.2 排序学习问题的研究现状
7.4 排序学习模型的应用实例
7.5 排序学习方法的框架
7.5.1 参数设置
7.5.2 排序学习方法的框架
7.6 评测数据集
7.6.1 LETOR数据集
7.6.2 Microsoft Learning to Rank数据集
7.6.3 Yahoo Webscope数据集
7.7 排序学习模型简介
7.7.1 实例
7.7.2 Pointwise方法
7.7.3 Pairwise方法
7.7.4 Listwise方法
7.7.5 3种排序方法的对比
7.8 排序学习模型性能比较
7.8.1 评测方法
7.8.2 排序模型性能的比较
7.9 排序学习的研究方向
7.9.1 标准标注的自动构建
7.9.2 排序特征
7.9.3 半监督学习/主动学习
7.9.4 查询相关的排序模型
7.9.5 利用用户行为特征
7.10 总结
参考文献
第8章 搜索引擎的性能调优
8.1 系统调优概述
8.2 瓶颈识别
8.3 涉及CPU的优化方法
8.3.1 上下文切换问题(context switching)
8.3.2 中断和轮询
8.3.3 CPU的Affinity问题
8.3.4 流水线问题
8.4 涉及内存的优化方法
8.4.1 概述
8.4.2 对换区
8.4.3 cache line
8.4.4 false sharing问题
8.4.5 内存的锁问题
8.4.6 内存库的使用
8.5 涉及磁盘的优化方法
8.5.1 磁盘IO的调度
8.5.2 其他常见磁盘参数调优
8.5.3 磁盘读写方式
8.5.4 文件缓存问题
8.5.5 5分钟法则
8.6 涉及网络的优化方法
8.6.1 搜索首页,结果页提速方法
8.6.2 Web server的架构选择
参考文献
内容摘要
《走进搜索引擎(第2版)》由搜索引擎开发研究领域三位年轻的博士生精心编写,作者们希望将自己对搜索引擎的理解和实际应用相结合,让未接触过搜索引擎原理和方法的读者也能轻松读懂该书的大部分内容。
《走进搜索引擎(第2版)》在第1版的基础上,删除了搜索引擎历史等章节,并对错误和不足进行了修订和补充,同时增加了潘雪峰编写的第6章“搜索引擎日志分析”,花贵春编写的第7章“排序学习(Learningto Rank)”和梁斌编写的第8章“搜索引擎的性能调优”三个主要章节,变更的内容约占第1版的一半。
《走进搜索引擎(第2版)》作为搜索引擎原理与技术的入门书籍,面向那些有志从事搜索引擎行业的青年学生、需要完整理解并优化搜索引擎的专业技术人员、搜索引擎的营销人员,以及网站的负责人等。本书是从事搜索引擎开发的工程技术人员难得的参考书,也可作为大中专院校相关专业的教学辅导书.
以下为对购买帮助不大的评价