1、大数据搜索引擎 原理分析及编程实现刘凡平 编著内 容 简 介本书向读者提供了一套完整的大数据时代背景下的搜索引擎解决方案,详尽地介绍了搜索引擎的技术架构、算法体系及取得的效果,以模块化的方式进行组织。着重介绍了机器学习在搜索引擎中的应用,包括中文分词、聚类、分类等核心的机器学习算法,并结合示例加以介绍和分析,使读者可以更好地理解机器学习在搜索引擎中的价值。还阐述了大数据给搜索引擎带来的新特性,结合目前大数据分析的主流工具,在搜索引擎中构建知识图谱,以及进行日志反馈学习机制,使得搜索引擎更加智能。本书适合作为互联网行业从业者的技术参考书,也适合作为搜索引擎爱好者的参考读物。未经许可,不得以任何方
2、式复制或抄袭本书之部分或全部内容。版权所有,侵权必究。图书在版编目(CIP)数据大数据搜索引擎原理分析及编程实现/刘凡平编著 北京:电子工业出版社,2016.7ISBN 978-7-121-29164-7.大.刘.搜索引擎程序设计.TP391.3中国版本图书馆CIP数据核字(2016)第141781号策划编辑:李 冰责任编辑:李 冰特约编辑:田学清 罗树利印刷:装订:出版发行:电子工业出版社北京市海淀区万寿路173信箱 邮编:100036开本:72010001/16印张:20.5 字数:525千字版次:2016年7月第1版印次:2016年7月第1次印刷定 价:59.00元凡所购买电子工业出版社
3、图书有缺损问题,请向购买书店调换。若书店售缺,请与本社发行部联系,联系及邮购电话:(010)88254888,88258888。质量投诉请发邮件至,盗版侵权举报请发邮件至。本书咨询联系方式:。前 言搜索引擎本身作为一门综合性的互联网技术,在行业中一直具备较高的关注度。随着最近几年大数据的发展,搜索引擎的关注度越来越高,原因在于搜索引擎技术是大数据应用最前线的领域,也是最容易产生价值的大数据应用。大数据存储、大数据计算都是从搜索引擎中衍生出的新领域。目前搜索引擎技术的发展不仅以大数据为基础,还利用分布式实时计算对数据进行高性能处理,以及利用机器学习将数据变得更具价值。在行业中吸引了包括搜索研发工
4、程师、算法研发工程师、大数据分析工程师、自然语言处理工程师、计算平台架构师、数据挖掘工程师等行业各类精英的关注,这些工程师占据了整个互联网研发体系的 50%60%,在 BAT 中,甚至超过 60%的是研发人员。这类群体薪资水平处于互联网研发人员中较高水平,以猎聘网公布的数据显示,北京地区搜索引擎研发工程师年薪为 35 万60 万元,大数据工程师年薪为 20 万25 万元,大数据架构师年薪为 40 万70 万元,等等。也正是由于薪资水平处于较高位,很多互联网相关从业者也积极关注大数据搜索引擎领域动态。本书通过介绍大数据下的自然语言处理框架、大数据存储引擎、搜索引擎的分布式实时计算、高性能可扩展爬
5、虫,以及利用大数据构建知识图谱、基于大数据日志的搜索引擎反馈学习等相关信息,不仅使读者对当代搜索引擎研发体系有一定的认识,还可以使读者在搜索引擎领域及大数据领域进行深入思考。本书特色本书以当前搜索引擎主流技术为基础,密切结合前沿技术发展趋势,行文大数据搜索引擎原理分析及编程实现IV通俗易懂,由初步的原理性了解到各模块应用示例,并结合分布式存储、实时计算等,向读者提供了一套完整的大数据时代背景下人工智能搜索引擎的解决方案。(1)内容循序渐进、行文有条有序地介绍搜索引擎知识。本书充分考虑了不同层次的读者对搜索引擎的理解程度,因此本书由简入深、独特的技术写作视角符合广大读者对于技术类读物的理解需求,
6、使得读者能够在掌握搜索引擎基础的情况下,不断按照搜索引擎的设计深入理解。(2)技术前瞻性强,注重最新主流技术在现代搜索引擎中的应用。本书充分利用了最新技术发展的应用成果,在自然语言处理的基础上不仅结合大数据分析,还包括分布式计算、机器学习、知识图谱等当前大数据应用与分析处理的主流技术,摒弃了传统过时的研发体系及算法。本书中相关研发成果在当前甚至在未来 35 年,都具有实际意义。(3)将技术理论与应用范例结合,具备较高的商业实用价值。本书内容紧密结合当前一线工程师工作研究成果,将众多的技术理论以实际工作经验的方式展示应用效果。本书介绍的内容也广泛结合工作中的应用示例,并以搜索引擎工程实践的脉络流
7、程介绍技术要点,使读者在短时间内能够掌握当前搜索引擎研发的技术理论。本书结构本书按照由浅入深、循序渐进的顺序对现代搜索引擎原理和实现进行介绍。全书分为 10 章,各章的主要内容如下。第 1 章针对搜索引擎发展的过去、现在、未来的相关概要介绍,以及现代搜索引擎与大数据、人工智能的相互关系,使广大读者能够在了解现代搜索引擎的背景之下,去了解本书的后续内容。V前 言第 2 章是对搜索引擎原理与技术的初步分析,从模块方面大致介绍爬虫、索引、缓存等;从技术方面大致介绍自然语言处理、知识图谱技术、海量数据存储、分布式计算等。目的是使得读者对搜索引擎的体系结构、部分技术有一定认识,便于读者深入了解后续章节。
8、第 3 章从自然语言角度开始深入分析原理和实现,自然语言是搜索引擎进行文本处理的基础,其中包括分词、词性分析、语义分析、关键词抽取、核心句抽取、聚类分类等。读者将会从本章中获得当前主流的自然语言处理技术相关知识。第 4 章主要是针对大数据存储引擎的介绍。大数据存储是搜索引擎最先遇到的问题,解决数据存储问题可以使搜索引擎在数据分析、索引构建、知识图谱等工作持续进行。读者在本章会了解到大数据存储引擎的架构体系、数据模型、数据压缩、负载均衡等。第 5 章介绍了分布式实时计算。由于搜索引擎处理的是海量数据,数据分析必须依靠具有较强数据处理能力的计算平台,因此搜索引擎通过分布式实时计算去处理大数据并在尽
9、可能短的时间内返回处理结果。本章中,读者会了解到分布式实时计算设计架构、负载均衡及通信设计等相关知识。第 6 章对爬虫进行了深入分析。读者在本章中将会深入理解分布式可扩展爬虫的体系架构,以及对网页如何进行解析,并抽取出结构化的数据信息。本章还涉及链接去重、网页去重、广告识别等相关算法原理。第 7 章详细介绍了知识图谱构建。知识图谱是智能化搜索引擎重要的组成部分,利用大数据分析构建出较为合理的知识图谱信息是当前主流的方式。读者将会从本章中深入了解到知识图谱的详细构建过程,以及利用机器学习原理对知识图谱中的实体抽取、关系抽取等相关技术进行。第 8 章详细分析了索引构建机制。索引的设计与构造是搜索引
10、擎能够进行大数据搜索引擎原理分析及编程实现VI快速检索的核心要件,主要针对文件检索的倒排索引与用于智能提示的字典树索引。本章不仅对倒排索引做了深入分析,对倒排索引的压缩、分布式存储等也做了详细介绍。第 9 章深入分析了搜索引擎的整个对外服务工作流程。包括大数据分布式缓存、搜索智能提示、个性化搜索、图片搜索、搜索与广告等。读者通过本章可以详细了解到文本纠错算法、动态摘要算法、网页排序算法及搜索引擎的评价 体系。第 10 章探讨和分析了搜索引擎日志与搜索引擎本身的关系。搜索引擎日志记录了用户与搜索系统交互的整个流程。通过日志挖掘,不仅可以发现用户的自有特征和行为规律,还可以有效地帮助搜索引擎提升性
11、能和效果。日志作为搜索引擎的核心数据之一,一直使搜索引擎技术中的各类算法不断向前发展。读者通过本章将学会通过搜索引擎日志分析用户特征、用户的部分搜索意图等相关知识。读者对象适合对自然语言处理及机器学习应用领域有兴趣的读者。适合对现代搜索引擎相关算法有兴趣的读者。适合对大数据分析、数据挖掘应用有兴趣的读者。适合互联网行业的不同层次从业者。适合从事搜索引擎优化的网络营销读者。适合高校中学习计算机、软件工程等相关专业的读者。目 录第1章 引论 11.1 搜索引擎的过去 11.2 搜索引擎的现在 21.3 搜索引擎的未来 41.4 大数据与搜索引擎 61.4.1 搜索价值提升 61.4.2 用户价值提
12、升 71.5 大数据与人工智能 71.5.1 人工智能发展 71.5.2 人工智能技术 91.6 本章小结 11第2章 搜索引擎原理与技术 122.1 基本工作原理 122.2 基本模块结构 132.2.1 爬虫服务 142.2.2 索引服务 152.2.3 缓存服务 162.2.4 搜索服务 17VIII大数据搜索引擎原理分析及编程实现2.2.5 日志服务 192.3 技术概要 202.3.1 自然语言处理 202.3.2 知识图谱技术 212.3.3 海量数据存储 232.3.4 分布式计算 252.3.5 搜索排序技术 262.4 本章小结 27第3章 自然语言处理框架 283.1 英文
13、分词 283.2 中文分词 303.2.1 中文分词概述 303.2.2 基于词库的分词技术 313.2.3 基于条件随机场的中文分词 333.2.4 分词粒度 413.3 词性标注 413.3.1 隐马尔科夫模型概要 423.3.2 隐马尔科夫模型与词性标注 433.4 语义相似度 513.5 依存句法分析 533.5.1 依存句法分析概要 533.5.2 依存句法分析实现 56IX目 录3.6 情感倾向分析 593.7 文档关键词抽取 613.7.1 关键词抽取概述 613.7.2 基于 TF-IDF 算法 623.7.3 基于 TextRank 算法 643.8 文档句子相似度分析 67
14、3.8.1 句子相似度 683.8.2 文档相似度 703.9 文档核心句抽取 713.10 聚类分类 743.10.1 文本分类 753.10.2 文本聚类 803.11 语种检测 843.12 本章小结 87第4章 构建大数据存储引擎 884.1 架构体系 894.1.1 结构概要 894.1.2 服务器上线 924.1.3 服务器下线 924.1.4 数据读取 934.2 数据模型 944.3 数据压缩 96X大数据搜索引擎原理分析及编程实现4.4 负载均衡 974.5 数据存储逻辑视图 1004.6 本章小结 103第5章 构建分布式实时计算 1045.1 概述 1045.2 设计架构
15、 1065.2.1 设计思想 1065.2.2 基本框架 1085.3 运行模式 1105.4 负载均衡 1115.5 通信设计 1125.5.1 基本方式 1135.5.2 分布式远程服务调用 1135.6 容灾恢复 1145.7 数据容错原理 1155.8 数据处理设计示例 1175.9 本章小结 118第6章 分布式可扩展爬虫 1196.1 爬虫体系架构 1196.1.1 主从分布式结构爬虫 1206.1.2 对等分布式结构爬虫 120XI目 录6.1.3 基于分布式计算平台爬虫 1216.2 网页解析 1226.2.1 状态码处理 1236.2.2 链接去重 1236.2.3 广告识别
16、 1256.2.4 网站地图 1286.2.5 非网页数据获取 1296.2.6 网页去重 1306.2.7 链接提取 1346.2.8 爬虫协议 1356.3 网页结构化 1376.3.1 网页的编码信息 1376.3.2 网页的正文信息 1386.3.3 网站的关键词信息 1426.3.4 网站的标题 1426.3.5 网页的发布时间 1446.3.6 网站语言检测 1446.3.7 其他结构化数据 1456.4 网页抓取策略 1466.5 爬虫权限应对 1476.6 深网抓取 1506.7 抓取更新策略 1516.8 本章小结 153XII大数据搜索引擎原理分析及编程实现第7章 大数据构建知识图谱 1547.1 概述 1547.2 搜索引擎与知识图谱 1557.3 可靠数据源选择 1577.4 实体抽取 1587.5 关系抽取 1597.5.1 关系抽取概述 1607.5.2 隐藏关系抽取 1617.5.3 结构化确定关系抽取 1647.5.4 非结构化确定关系抽取 1667.6 知识图谱检测 1717.6.1 实体关系修正 1717.6.2 实体对齐整合 1727.6.3 实体