基本信息
编辑推荐
改变全世界人们生活方式的“信息之门”
内容简介
计算机书籍
搜索引擎作为互联网发展中至关重要的一种应用,已经成为互联网各个领域的制高点,其重要性不言而喻。搜索引擎领域也是互联网应用中不多见的以核心技术作为其命脉的领域,搜索引擎各个子系统是如何设计的?这成为广大技术人员和搜索引擎优化人员密切关注的内容。
《这就是搜索引擎:核心技术详解》的最大特点是内容新颖全面而又通俗易懂。对于实际搜索引擎所涉及的各种核心技术都有全面细致的介绍,除了作为搜索系统核心的网络爬虫、索引系统、排序系统、链接分析及用户分析外,还包括网页反作弊、缓存管理、网页去重技术等实际搜索引擎必须关注的技术,同时用相当大的篇幅讲解了云计算与云存储的核心技术原理。另外,本书也密切关注搜索引擎发展的前沿技术:Google 的咖啡因系统及Megastore 等云计算新技术、百度的暗网抓取技术阿拉丁计划、内容农场作弊、机器学习排序等。诸多新技术在相关章节都有详细讲解,同时对于社会化搜索、实时搜索及情境搜索等搜索引擎的未来发展方向做了技术展望。为了增进读者的理解,全书大量引入形象的图片来讲解算法原理,相信读者会发现原来搜索引擎的核心技术的理解比原先想象的要简单得多。
《这就是搜索引擎:核心技术详解》适合所有对搜索引擎技术感兴趣的人们,尤其对于相关领域的学生、对搜索引擎核心技术感到好奇的技术人员、从事搜索引擎优化的相关人员及中小网站站长等更有参考价值。
作译者
目录
第 1 章 搜索引擎及其技术架构 1
1.1 搜索引擎为何重要 1
1.1.1 互联网的发展 1
1.1.2 商业搜索引擎公司的发展 3
1.1.3 搜索引擎的重要地位 3
1.2 搜索引擎技术发展史 4
1.2.1 史前时代:分类目录的一代 4
1.2.2 第一代:文本检索的一代 5
1.2.3 第二代:链接分析的一代 5
1.2.4 第三代:用户中心的一代 5
1.3 搜索引擎的3 个目标 6
1.4 搜索引擎的3 个核心问题 7
1.4.1 3 个核心问题 7
1.4.2 与技术发展的关系 8
1.5 搜索引擎的技术架构 9
第2 章 网络爬虫 12
2.1 通用爬虫框架 12
2.2 优秀爬虫的特性 15
2.3 爬虫质量的评价标准 18
前言
经过十几年的发展,搜索引擎已经成为互联网的重要入口之一,Twitter 联合创始人埃文·威廉姆斯提出了“域名已死论”:好记的域名不再重要,因为人们会通过搜索进入网站。搜索引擎排名对于中小网站流量来说至关重要。了解搜索引擎简单界面背后的技术原理其实对很多人都很重要。
为什么会有这本书
最初写本搜索引擎技术书籍的想法萌生于两年前,当时的场景是要给团队成员做搜索技术培训,但是我找遍了相关图书,却没有发现非常合适的搜索技术入门书籍。当时市面上的书籍,要么是信息检索理论方面的专著,理论性太强不易懂,而且真正讲搜索引擎技术的章节并不太多;要么是Lucene 代码分析这种过于实务的书籍,像搜索引擎这种充满算法的应用,直接分析开源系统代码并不是非常高效的学习方式。所以当时萌生了写一本既通俗易懂,适合没有相关技术背景的人员阅读,又比较全面,且融入最新技术的搜索引擎书籍,但是真正动手开始写是一年前的事情了。
写书前我给自己定了几个目标。首先内容要全面,即全面覆盖搜索引擎相关技术的主要方面,不仅要包含倒排索引、检索模型和爬虫等常见内容,也要详细讲解链接分析、网页反作弊、用户搜索意图分析、云存储及网页去重,甚至是搜索引擎缓存等内容,这些都是一个完整搜索引擎的有机构成部分,但是详述其原理的书籍并不多,我希望能够尽可能全面些。
第二个目标是通俗易懂。我希望没有任何相关技术背景的人也能够通过阅读这本书有所收获,最好是不懂技术的同学也能大致看懂。这个目标看似简单,其实很不容易达到,我也不敢说这本书已经达到了此目的,但是确实已经尽自己所能去做了。至于具体的措施,则包含以下三个方面。
一个是尽可能减少数学公式的出现次数,除非不得已不罗列公式。虽说数学公式具简洁之美,但是大多数人其实对于数学符号是有恐惧和逃避心理的,多年前我也有类似心理,所以但凡可能,尽量不用数学公式。
·一个是尽可能多举例子,尤其是一些比较难理解的地方,需要例子来增进理解。
·还有一个是多画图。就我个人的经验来说,尽管算法或者技术是很抽象的,但是如果深入理解其原理,去繁就简,那么一定可以把算法转换成形象的图片。如果不能在头脑中形成算法直观的图形表示,说明并未透彻了解其原理。这是我判断自己是否深入理解算法的一个私有标准。鉴于此,本书中在讲解算法的地方,大量采用了算法原理图,全书包含了超过300 幅算法原理讲解图,相信这对于读者深入理解算法会有很大的帮助。
·第三个目标是强调新现象新技术,比如Google 的咖啡因系统及Megastore 等云存储系统、Pregel 云图计算模型、暗网爬取技术、Web 2.0 网页作弊、机器学习排序、情境搜索、社会化搜索等在相关章节都有讲解。
·第四个目标是强调原理,不纠缠技术细节。对于新手一个易犯的毛病是喜欢抠细节,只见树木不见森林,搞明白了一个公式却不了解其背后的基本思想和出发点。我接触的技术人员很多,十有七八会有这个特点。这里有个“道术孰优”的问题,何为“道”?何为“术”?举个例子的话,《孙子兵法》是道,而《三十六计》则为术。“道”所述,是宏观的、原理性的、长久不变的基本原理,而“术”则是在遵循基本原理基础上的具体手段和措施,具有易变性。技术也是如此,算法本身的细节是“术”,算法体现的基本思想则是“道”,知“道”而学“术”,两者虽不可偏废,但是若要选择优先级的话,无疑我会选择先“道”后“术”。
以上四点是写书前定下的目标,现在书写完了,也许很多地方不能达到最初的期望,但是尽了力就好。写书的过程很辛苦,起码比我原先想象的要辛苦,因为工作繁忙,所以只能每天早早起床,再加上周末及节假日的时间来完成。也许书中还存在这样那样的缺点,但是我可以无愧地说写这本书是有诚意的。
这本书是写给谁的
如果您是下列人员之一,那么本书就是写给您的。
1. 对搜索引擎核心算法有兴趣的技术人员
搜索引擎的整体框架是怎样的?包含哪些核心技术?
·网络爬虫的基本架构是什么?常见的爬取策略是什么?什么是暗网爬取?如何构建分布式爬虫?百度的阿拉丁计划是什么?
·什么是倒排索引?如何对倒排索引进行数据压缩?
·搜索引擎如何对搜索结果排序?
·什么是向量空间模型?什么是概率模型?什么是BM25 模型?什么是机器学习排序?它们之间有何异同?