编辑推荐《这就是搜索引擎:核心技术详解》
优采云 发布时间: 2021-07-11 07:01
编辑推荐《这就是搜索引擎:核心技术详解》
编辑推荐
《这就是搜索引擎:核心技术详解》适合所有对搜索引擎技术感兴趣的人,尤其是相关领域的学生、对搜索引擎核心技术感兴趣的技术人员、相关从业人员在搜索引擎优化方面,中小网站站长等更有参考价值。
作者其他作品《大数据日常知识:架构与算法》
内容介绍
搜索引擎作为互联网发展中至关重要的应用,已经成为互联网各个领域的制高点,其重要性不言而喻。搜索引擎领域也是互联网应用中少有的以核心技术为命脉的领域。搜索引擎的各个子系统是如何设计的?这已成为广大技术人员和搜索引擎优化者关注的内容。
《这就是搜索引擎:核心技术详解》的特点是内容新颖、全面、通俗易懂。对实际搜索引擎中涉及的各种核心技术进行了全面详细的介绍。除了以网络爬虫、索引系统、排名系统、链接分析和用户分析为核心的搜索系统外,还包括网页反作弊、缓存管理、网页重复数据删除技术等实际搜索引擎必须具备的技术。关注,同时在相当大的篇幅中讲解了云计算和云存储的核心技术原理。此外,本书还密切关注搜索引擎开发的前沿技术:谷歌的*敏*感*词*系统和Megastore等新的云计算技术、百度的暗网爬虫技术阿拉丁计划、内容农场作弊、机器学习排序等。许多新技术在相关章节中有详细的讲解,同时对社交搜索、实时搜索、上下文搜索等搜索引擎未来的发展方向给出了技术展望。为了加深读者的理解,书中引入了大量生动的图片来讲解算法的原理。相信读者会发现,原来搜索引擎的核心技术比原先想象的要简单得多。
作者简介
张俊林着有技术书籍《这就是搜索引擎:核心技术详解》,现任畅捷通智能平台总监。在此之前,张君林曾任阿里巴巴风潮广告平台、百度商业搜索部、新浪微博搜索部和数据系统部高级技术专家,新浪微博技术委员会委员,负责方向算法策略。张君林也是智能信息聚合网站“玩聚网”的联合创始人之一。他的研发兴趣集中在:搜索技术、推荐系统、社交挖掘、自然语言处理和大数据算法架构等,在上述领域有多年的行业实践经验。张君林毕业于天津大学管理学院,获学*敏*感*词*。 1999年至2004年在中国科学院软件研究所直接攻读博*敏*感*词*。研究方向为信息检索理论和自然语言处理。学习期间,在ACL/COLING/IJCNLP等顶级国际会议上发表多篇文章。学术论文。此外,他在此期间设计的搜索系统赢得了17个国际高水平研究团队的激烈竞争,并在美国国防部DARPA主办的第二届TREC高精度检索系统评估中排名第一。取名效果极佳。
内容
第一章搜索引擎及其技术架构
1.1 为什么搜索引擎很重要
1.1.1 互联网的发展
1.1.2 商业搜索引擎公司的发展
1.1.3 搜索引擎的重要地位
1.2搜索引擎技术发展历程
1.2.1史前时代:目录的产生
1.2.2 第一代:文本检索的产生
1.2.3 第二代:链路分析的产生
1.2.4 第三代:以用户为中心的一代
1.3 搜索引擎的3个目标
1.4 搜索引擎的3个核心问题
1.4.13个核心问题
1.4.2 与技术发展的关系
1.5搜索引擎技术架构
第 2 章网络爬虫
2.1 通用爬虫框架
2.2 优秀爬虫的特点
2.3 爬虫质量评价标准
2.4 爬取策略
2.4.1 广度优先遍历策略(BreathFirst)
2.4.2 部分 PageRank 策略(PartialPageRank)
2.4.3OCIP 策略(OnlinePageImportanceComputation)
2.4.4LargerSitesFirst 策略(LargerSitesFirst)
2.5网页更新策略
2.5.1历史参考策略
2.5.2用户体验策略
2.5.3 聚类抽样策略
2.6DeepWebCrawling(DeepWebCrawling)
2.6.1 查询组合问题
2.6.2 在文本框中填写问题
2.7 分布式爬虫
2.7.1 主从分发爬虫(Master-Slave)
2.7.2 点对点(PeertoPeer)
本章总结
本章参考资料
第 3 章搜索引擎索引
3.1索引基础
3.1.1 字——文档矩阵
3.1.2 倒排索引的基本概念
3.1.3 倒排索引的简单例子
3.2 词词典
3.2.1 哈希加链表
3.2.2树结构
3.3PostingList
3.4创建索引
3.4.1 两遍文档遍历方法(2-PassIn-MemoryInversion)
3.4.2Sort-basedInversion(Sort-basedInversion)
3.4.3Merge-basedInversion(Merge-basedInversion)
3.5动态索引
3.6 索引更新策略
3.6.1 完整重建策略(CompleteRe-Build)
3.6.2 重新合并策略(Re-Merge)
3.6.3 就地更新策略(In-Place)
3.6.4 混合策略(Hybrid)
3.7查询处理
3.7.1 一次一个文档(DocataTime)
3.7.2 一次一个字(TermataTime)
3.7.3SkipPointers(SkipPointers)
3.8多字段索引
3.8.1多索引法
3.8.2倒排列表法
3.8.3扩展列表方法(ExtentList)
3.9phrase 查询
3.9.1位置索引(PositionIndex)
3.9.2 二字索引(NextwordIndex)
3.9.3 PhraseIndex (PhraseIndex)
3.9.4 混合方法
3.10分布式索引(ParallelIndexing)
3.10.1 按文档划分(DocumentPartitioning)
3.10.2 按词划分(TermPartitioning)
3.10.3 两种方案对比
本章总结
本章参考资料
第 4 章索引压缩
4.1 字典压缩
4.2倒列表压缩算法
4.2.1 评价指标压缩算法指标
4.2.2 一元编码和二进制编码
4.2.3EliasGamma 算法和 EliasDelta 算法
4.2.4Golomb 算法和 Rice 算法
4.2.5 变长字节算法(VariableByte)
4.2.6SimpleX 系列算法
4.2.7PForDelta 算法
4.3 DocIDReordering(DocIDReordering)
4.4StaticIndexPruning (StaticIndexPruning)
4.4.1 以词为中心的索引剪裁
4.4.2 以文档为中心的索引裁剪
本章总结
本章参考资料
第 5 章搜索模型和搜索排序
5.1BooleanModel (BooleanModel)
5.2VectorSpaceModel (VectorSpaceModel)
5.2.1文档表示
5.2.2 相似度计算
5.2.3特征权重计算
5.3概率检索模型
5.3.1 概率排序原则
5.3.2BinaryIndependentModel(BinaryIndependentModel)
5.3.3BM25 模型
5.3.4BM25F 模型
5.4 语言模型方法
5.5 机器学习排名(LearningtoRank)
5.5.1机器学习排序的基本思路
5.5.2 单文档方法(PointWiseApproach)
5.5.3文档对方法(PairWiseApproach)
5.5.4 文档列表方法(ListWiseApproach)
5.6 搜索质量评价标准
5.6.1准确率和召回率
5.6.2P@10个指标
5.6.3MAP 指标(MeanAveragePrecision)
本章总结
本章参考资料
第六章链接分析
6.1网页图片
6.2 两个概念模型和算法的关系
6.2.1RandomSurferModel (RandomSurferModel)
6.2.2 子集传播模型
6.2.3 链接分析算法之间的关系
6.3PageRank 算法
6.3.1 从链内数到PageRank
6.3.2PageRank 计算
6.3.3 链接陷阱(LinkSink)和远程跳转(Teleporting)
6.4HITS 算法(HypertextInducedTopicSelection)
6.4.1Hub 页面和权限页面
6.4.2 互增关系
6.4.3HITS 算法
6.4.4HITS 算法问题
6.4.5HITS算法与PageRank算法对比
6.5SALSA 算法
6.5.1 确定计算对象集
6.5.2 链接关系传播
6.5.3权限权重计算
6.6 主题敏感页面排名(TopicSensitivePageRank)
6.6.1 主题敏感的PageRank和PageRank的区别
6.6.2 主题敏感的PageRank计算过程
6.6.3 使用主题敏感的PageRank构建个性化搜索
6.7Hilltop 算法
6.7.1 Hilltop 算法的一些基本定义
6.7.2Hilltop 算法
6.8 其他改进算法
6.8.1IntelligentSurferModel(智能冲浪模型)
6.8.2 BiasedSurferModel(BiasedSurferModel)
6.8.3PHITS 算法(ProbabilityAnalogyofHITS)
6.8.4BFS 算法(BackwardForwardStep)
本章总结
本章参考资料
第 7 章云存储和云计算
7.1 云存储和云计算概述
7.1.1 基本假设
7.1.2理论基础
7.1.3 数据模型
7.1.4 基本问题
7.1.5Google 的云存储和云计算架构
7.2Google 文件系统 (GFS)
7.2.1GFS 设计原则
7.2.2GFS 整体架构
7.2.3GFS 主控服务器
7.2.4 系统交互行为
7.3Chubby 锁服务
7.4BigTable
7.4.1BigTable 的数据模型
7.4.2BigTable 整体结构
7.4.3BigTable 的管理数据
7.4.4MasterServer
7.4.5 分表服务器(TabletServer)
7.5Megastore 系统
7.5.1 实体组切分
7.5.2数据模型
7.5.3数据读写与备份
7.6Map/Reduce 云计算模型
7.6.1计算模型
7.6.2 整体逻辑流程
7.6.3 应用实例
7.7Caffeine System-Percolator
7.7.1 事务支持
7.7.2 观察/通知架构
7.8Pregel 图计算模型
7.9Dynomo 云存储系统
7.9.1 数据分区算法(PartitioningAlgorithm)
7.9.2数据备份(复制)
7.9.3数据读写
7.9.4数据版本控制
7.10PNUTS 云存储系统
7.10.1PNUTS 整体架构
7.10.2 存储单元
7.10.3 分表控制器和数据路由器
7.10.4 雅虎通讯社
7.10.5 数据一致性
7.11HayStack 存储系统
7.11.1HayStack 整体架构
7.11.2 目录服务
7.11.3HayStack 缓存
7.11.4HayStack 存储系统
本章总结
本章参考资料
第8章网络反作弊
8.1内容作弊
8.1.1常见的内容作弊方法
8.1.2内容农场(ContentFarm)
8.2 链接作弊
8.3 页面隐藏作弊
8.4Web2.0 作弊方法
8.5反作弊技术总体思路
8.5.1 信任传播模型
8.5.2 不信任传播模型
8.5.3 异常发现模型
8.6 万能链接反作弊方法
8.6.1TrustRank 算法
8.6.2BadRank 算法
8.6.3SpamRank
8.7 专用链接防作弊技术
8.7.1 识别链接农场
8.7.2 识别谷歌轰炸
8.8 识别内容作弊
8.9反隐藏作弊
8.9.1 识别页面隐藏
8.9.2 识别网页重定向
8.10 搜索引擎反作弊综合框架
本章总结
本章参考资料
第九章用户查询意图分析
9.1搜索行为及其意图
9.1.1用户搜索行为
9.1.2用户搜索意图分类
9.2搜索日志挖掘
9.2.1查询会话(QuerySession)
9.2.2ClickGraph (ClickGraph)
9.2.3查询图(QueryGraph)
9.3 相关搜索
9.3.1 基于查询会话的方法
9.3.2 基于点击图的方法
9.4检查纠错
9.4.1EditDistance(编辑距离)
9.4.2 噪声通道模型(NoiseChannelModel)
本章总结
本章参考资料
第十章网页去重
10.1 通用去重算法框架
10.2Shingling 算法
10.3I-Match 算法
10.4SimHash 算法
10.4.1 文档指纹计算
10.4.2 搜索类似文档
10.5SpotSig 算法
10.5.1 特征提取
10.5.2 搜索类似文档
本章总结
本章参考资料
第11章搜索引擎缓存机制
11.1搜索引擎缓存系统架构
11.2Cache 对象
11.3缓存结构
11.4缓存消除策略(EvictPolicy)
11.4.1 动态策略
11.4.2 混合策略
11.5缓存更新策略(RefreshPolicy)
本章总结
本章参考资料
第十二章搜索引擎发展趋势
12.1个性化搜索
12.2社交搜索
12.3 实时搜索
12.4手机搜索
12.5 位置感知搜索
12.6跨语言搜索
12.7多媒体搜索
12.8情况搜索
前言
互联网产品种类繁多,以产品为导向,以营销为导向,以技术为导向,但精通技术的互联网产品比例相对较小。搜索引擎是当前互联网产品中具有技术含量的产品,如果不是唯一的,至少是其中之一。
经过十多年的发展,搜索引擎已经成为互联网的重要门户之一。 Twitter联合创始人埃文威廉姆斯提出“域名已死理论”:容易记住的域名不再重要,因为人们会通过搜索输入网站。搜索引擎排名对于中小网站流量非常重要。了解搜索引擎简单界面背后的技术原理,对很多人来说其实很重要。
为什么会有这本书
写搜索引擎技术书籍的最初想法是两年前诞生的。当时的场景是对团队成员进行搜索技术培训,但是我搜索了相关书籍,却没有找到一本非常合适的搜索技术入门书籍。当时市场上的书籍,要么是信息检索理论的专着,理论性太强,不易理解,真正讲搜索引擎技术的章节也不多;或者它们是太实用的书,比如 Lucene 代码分析,比如搜索引擎。这种直接分析开源系统代码的算法应用并不是一种非常高效的学习方法。所以当时就诞生了写一本通俗易懂,适合没有相关技术背景的人,比较全面,融合新技术的搜索引擎书籍。但我是在一年前开始写作的。
在写这本书之前,我为自己设定了一些目标。首先,内容要全面,即全面覆盖搜索引擎相关技术的主要方面。不仅要收录倒排索引、检索模型、爬虫等常用内容,还要详细讲解链接分析、网页反作弊、用户搜索意图分析、网页云存储和去重甚至搜索引擎缓存都是有机的一个完整的搜索引擎的组成部分,但详细介绍其原理的书籍并不多。我希望尽可能全面。
第二个目标很容易理解。我希望没有任何相关技术背景的人可以从阅读本书中学到一些东西,不了解技术的学生可以大致理解。这个目标看似简单,但实际上实现起来并不容易。我不敢说这本书达到了这个目标,但我已经尽力了。具体措施包括以下三个方面。
一是尽可能减少数学公式的数量,除非公式没有列出。尽管数学公式具有简单之美,但大多数人实际上对数学符号存在恐惧和回避。多年前我也有类似的心理,所以尽可能不要使用数学公式。
一是尽量多举例,特别是一些比较难理解的地方。需要举例来加深理解。
还有更多的绘图。就我个人的经验而言,虽然算法或技术很抽象,但如果深入理解原理,将复杂的化简,绝对可以将算法转化为生动的画面。如果你无法在脑海中形成算法的直观图形表示,则说明你对其原理没有透彻的理解。这是我判断自己是否深刻理解算法的一个私人标准。鉴于此,本书在讲解算法的地方,使用了大量的算法*敏*感*词*。全书收录300多幅算法原理解释图。相信这对读者深入理解算法有很大帮助。
第三个目标是强调新现象和新技术,比如谷歌的caffeine系统和Megastore等云存储系统、Pregel云图计算模型、暗网爬取技术、Web2.0网络作弊、机器学习排序、上下文搜索、社交搜索等在相关章节中有说明。
第四个目标是强调原则,而不是停留在技术细节上。对于新手来说,一个容易解决的问题是他们喜欢挖掘细节,只见树木不见森林,懂一个公式却不懂背后的基本思想和出发点。我接触过很多技术人员,七八岁就会有这个特点。有一个问题“道家哪个好?” “道”是什么?什么是“*敏*感*词*”?比如《孙子兵法》就是道,《三十六计》就是战术。 “道”是宏观的、有原则的、经久不衰的基本原则,而“技术”是遵循基本原则的具体方法和措施,是变化无常的。技术也是如此。算法本身的细节就是“技巧”,算法所体现的基本思想就是“道”。知“道”、学“技”,虽然两者不能偏,但如果要选择优先级,毫无疑问我会先选择“道”再选择“术”。
以上四点是写书之前设定的目标。现在写完了,可能很多地方都达不到当初的期待,但是我会努力的。写书的过程很辛苦,至少比我想象的要难。因为工作忙,每天只能早起,加上周末和节假日。也许书中有这样的缺点,但我可以说我是真诚地写这本书的。
这本书是给谁看的?
如果您是以下其中一种,那么这本书适合您。
1.对搜索引擎核心算法感兴趣的技术人员
搜索引擎的整体框架是什么?收录哪些核心技术?
网络爬虫的基本结构是什么?常见的爬取策略有哪些?什么是暗网爬行?如何构建分布式爬虫?百度的阿拉丁计划是什么?
什么是倒排索引?如何对倒排索引进行数据压缩?
搜索引擎如何对搜索结果进行排序?
什么是向量空间模型?什么是概率模型?什么是BM25型号?什么是机器学习排序?它们之间有什么异同?
PageRank和HITS算法有什么关系?有哪些相同点和不同点?什么是 SALSA 算法?什么是山顶算法?各种链接分析算法之间的关系是什么?
如何识别搜索用户的真实搜索意图?用户可以搜索多少个类别?什么是点击图表?什么是查询会话?相关搜索是如何完成的?
为什么我们需要去重复网页?如何去重复网页?哪种算法效果更好?
搜索引擎缓存有多少级?核心战略是什么?
什么是上下文搜索?什么是社交搜索?什么是实时搜索?
搜索引擎的发展趋势是什么?
如果你对三个以上的问题感兴趣,那么这本书就是为你而写的。
2.对云计算和云存储感兴趣的技术人员
CAP的原理是什么?什么是 ACID 原理?它们之间有什么异同?
Google 的云计算框架包括哪些技术? Hadoop系列和谷歌的云计算框架有什么关系?
Google 的三驾马车 GFS、BigTable 和 MapReduce 是什么意思?有什么关系?
谷歌*敏*感*词*系统的基本原理是什么?
Google 的 Pregel 计算模型和 MapReduce 计算模型有什么区别?
Google 的 Megastore 云存储系统和 BigTable 是什么关系?
什么是亚马逊的 Dynamo 系统?
雅虎的 PNUTS 系统是什么?
Haystack 存储系统适用于哪些地方?
如果你对以上问题感兴趣,相信你可以在书中找到答案。
3.互联网营销人员从事搜索引擎优化和中小网站站长
搜索引擎的反作弊策略是什么?如何优化以避免被认为作弊?
搜索引擎如何对搜索结果进行排序?链接分析和内容排名有什么关系?
什么是内容农场?什么是链接农场?他们是什么关系?
什么是 Web 2.0 作弊?常用的方法有哪些?
什么是 SpamRank?什么是信任等级?什么是坏排名?他们是什么关系?
*敏*感*词*系统如何影响页面排名?
最近一批电商网站针对搜索引擎优化,结果被谷歌认定为黑帽SEO,导致搜索排名权降低。如何避免这种情况?从事相关行业的营销人员和网站webmasters应该对反作弊搜索引擎的基本策略和方法,甚至页面排名算法等搜索引擎的核心技术有深入的了解。 SEO技术归根结底其实很简单。尽管它在不断变化,但许多原则和策略总是相似而密不可分的。深入了解搜索引擎相关技术原理,将形成您所在行业的竞争优势。
4.作者本人
我的记忆力不是很好,一段时间内学到的技术往往几年后就模糊了,所以这本书也是给自己写的,作为技术参考手册。沉力也参与了本书的部分编写。
谢谢
感谢博文的编辑傅锐。没有她,这本书就不会出版。傅主编在审稿过程中提出的细致的改进点对我帮助很大。
特别感谢我的妻子。在将近一年的写作过程中,我几乎把所有的空闲时间都花在了这本书的写作上。她承担了所有的家务,以免分散我的注意力。没时间陪她也没关系,这本书的诞生也算是送给她的礼物。
对我来说,写这本书是一个辛苦而快乐的过程。就像一个远行的旅人。当你从水和山上仰望时,你总能看到你所忽略的美丽景色。如果您在阅读本书,我很荣幸能有这样的体验。
张俊林
2011 年 6 月
获取正版《这就是搜索引擎:核心技术详解》