描述
开 本: 16开纸 张: 胶版纸包 装: 平装-胶订是否套装: 否国际标准书号ISBN: 9787302565949
“Elasticsearch是大数据领域的数据处理引擎,高可用、易扩展、高并发,集存储、分析、查询于一体。掌握Elasticsearch将助您成为大数据领域专家。
本书由大数据业界专家编写,经华为、中兴高级技术专家审读并撰序。
以实战为主线,由浅入深地剖析Elasticsearch技术原理与实现,*限度地展现作者多年的大数据实战经验和心得。
先介绍Elasticsearch在具体工程中的部署和应用,然后逐步解析Elasticsearch的核心原理,*后再回到工程实战,深入浅出,通俗易懂。
本书一定会帮助您从Elasticsearch的小白成为大牛。
“
基于elasticsearch7.x编写,全面、准确地讲解elasticsearch的安装、开发、技术原理、生产环境的性能调优等内容。适合有意从事搜索引起、大数据、商业智能等行业的入门人员学习参考,也是资深技术人员很好的一本参考书籍。
第1章 快速入门1
1.1 基本概念1
1.2 安装部署4
1.3 开始使用集群6
1.3.1 集群健康信息6
1.3.2 列出集群中的索引信息7
1.3.3 创建一个索引8
1.3.4 索引和查询文档8
1.3.5 删除索引9
1.4 修改数据10
1.4.1 索引和覆盖文档10
1.4.2 更新文档11
1.4.3 删除文档12
1.4.4 批量操作12
1.5 探索数据12
1.5.1 加载数据集13
1.5.2 搜索API13
1.5.3 Elasticsearch查询语言15
1.5.4 搜索文档17
1.5.5 条件过滤21
1.5.6 聚合查询22
第2章 安装部署27
2.1 安装JDK27
2.2 安装Elasticsearch28
2.2.1 调整Linux系统的相关参数设置 28
2.2.2 创建用户28
2.2.3 下载Elasticsearch29
2.3 配置Elasticsearch29
2.3.1 配置文件的位置30
2.3.2 配置文件的格式30
2.3.3 环境变量替换30
2.3.4 设置JVM参数31
2.3.5 安全设置31
2.3.6 创建密钥库32
2.3.7 列出密钥库中的设置项32
2.3.8 添加字符串设置33
2.3.9 添加文件设置33
2.3.1 0删除设置属性33
2.3.1 1可重载的安全设置33
2.3.1 2日志配置33
2.3.1 3配置日志级别35
2.3.1 4JSON日志格式37
2.4 跨集群复制设置(用于多个集群间的数据恢复)37
2.4.1 远程恢复设置37
2.4.2 高级远程恢复设置37
2.4.3 索引生命周期管理设置38
2.4.4 序列号设置38
2.4.5 监控功能设置38
2.4.6 一般的监控设置38
2.4.7 监控收集设置39
2.4.8 本地导出器设置40
2.4.9 HTTP导出器设置40
2.4.1 0XPack监控TLS/SSL相关设置42
2.4.1 1XPack监控TLS/SSL密钥和可信证书设置42
2.4.1 2PEM编码文件42
2.5 重要的Elasticsearch配置43
2.5.1 数据和日志存放目录43
2.5.2 集群名称43
2.5.3 节点名称44
2.5.4 网络设置44
2.5.5 重要节点发现和集群初始化设置44
2.5.6 Heap设置45
2.5.7 JVM heap dump目录设置46
2.5.8 GC日志设置46
2.5.9 临时文件存储目录46
2.5.1 0JVM致命错误日志设置47
2.6 重要的系统参数设置47
2.6.1 配置系统设置47
2.6.2 禁用交换区48
2.6.3 文件描述符49
2.6.4 虚拟内存49
2.6.5 线程数量限制50
2.6.6 DNS缓存设置50
2.6.7 JNA临时目录挂载位置50
2.7 启动检查50
2.7.1 Heap大小检查51
2.7.2 文件描述符检查51
2.7.3 内存锁定检查51
2.7.4 线程数限制核查52
2.7.5 文件大小检查52
2.7.6 虚拟内存检查52
2.7.7 mmap映射区域数量检查53
2.7.8 JVM模式检查53
2.7.9 JVM垃圾收集机制检查53
2.7.1 0系统调用过滤器检查53
2.7.1 1发现功能配置检查54
2.8 启动和停止Elasticsearch54
2.9 集群水平扩展54
第3章 API规范56
3.1 多索引56
3.2 日期数学格式56
3.3 通用选项58
3.3.1 格式化搜索结果58
3.3.2 可读输出58
3.3.3 格式化日期值58
3.3.4 返回信息过滤59
3.3.5 展开设置63
3.3.6 布尔值64
3.3.7 数字值64
3.3.8 时间单位64
3.3.9 数据单位65
3.3.1 0缩略处理65
3.3.1 1距离单位65
3.3.1 2模糊性66
3.3.1 3启用堆栈跟踪66
3.3.1 4查询字符串中的请求正文67
3.3.1 5ContentType要求67
3.4 基于URL的访问控制67
第4章 操作文档69
4.1 读写文档69
4.1.1 基本写模型70
4.1.2 写流程错误处理70
4.1.3 基本读模型71
4.1.4 读流程错误处理71
4.1.5 一些简单的知识点72
4.2 索引API72
4.2.1 自动创建索引73
4.2.2 ID自动生成74
4.2.3 路由75
4.2.4 分发75
4.2.5 等待活动分片75
4.2.6 detect_noop参数76
4.3 GET API76
4.3.1 实时性77
4.3.2 字段选择77
4.3.3 存储字段77
4.3.4 直接获取_source 78
4.3.5 路由78
4.3.6 preference参数79
4.3.7 refresh参数79
4.3.8 分发79
4.3.9 版本支持79
4.4 删除API79
4.5 查询删除80
4.5.1 URL参数82
4.5.2 返回体82
4.5.3 任务API83
4.5.4 取消任务API84
4.5.5 动态调整API85
4.5.6 切片85
4.6 更新API87
4.6.1 使用script更新88
4.6.2 部分字段更新89
4.6.3 避免无效更新89
4.6.4 upsert元素90
4.6.5 scripted_upsert参数91
4.6.6 doc_as_upsert 参数92
4.7 查询更新92
4.7.1 URL参数95
4.7.2 请求体95
4.7.3 任务API96
4.7.4 取消任务API96
4.7.5 动态调整API96
4.7.6 切片96
4.7.7 获取新属性96
4.8 MGet API98
4.8.1 _source 过滤99
4.8.2 存储字段100
4.8.3 路由100
4.8.4 重新索引101
4.9 跨集群索引106
4.1 0批量操作API107
4.1 0.1 路由110
4.1 0.2 更新110
4.1 1Term向量111
4.1 1.1 返回值111
4.1 1.2 Term过滤112
4.1 1.3 行为分析114
4.1 1.4 获取多个文档的Term向量118
4.1 2refresh参数119
4.1 2.1 如何选择refresh 的值120
4.1 2.2 强制刷新120
4.1 3乐观并发控制121
第5章 搜索数据123
5.1 基本概念和机制123
5.2 搜索API125
5.3 URI模式125
5.4 Body模式126
5.4.1 Explain 参数128
5.4.2 折叠结果131
5.4.3 对结果分页133
5.4.4 高亮结果133
5.4.5 索引加权146
5.4.6 命中文档嵌套146
5.4.7 分数值过滤154
5.4.8 查询命名154
5.4.9 post_filter过滤155
5.4.1 0分片选择157
5.4.1 1重排序158
5.4.1 2脚本字段160
5.4.1 3滚动查询161
5.4.1 4search_after参数164
5.4.1 5搜索类型166
5.4.1 6排序166
5.4.1 7_source 字段过滤173
5.4.1 8存储字段174
5.4.1 9total返回值详解175
5.4.2 0版本176
5.5 返回搜索分片信息177
5.6 Count API177
5.7 Validate API178
5.8 调试搜索请求179
第6章 聚合180
6.1 度量值聚合180
6.1.1 均值聚合181
6.1.2 带权重的均值聚合183
6.1.3 计数聚合185
6.1.4 统计聚合187
6.1.5 地理范围聚合188
6.1.6 地理距离质心聚合189
6.1.7 值聚合、小值聚合、和值聚合192
6.1.8 百分位数聚合192
6.1.9 百分比排名聚合197
6.1.1 0脚本聚合198
6.1.1 1顶部命中聚合200
6.1.1 2单值度量聚合205
6.1.1 3中位数偏差聚合206
6.2 存储桶聚合207
6.2.1 邻接矩阵聚合207
6.2.2 区间聚合209
6.2.3 日期区间聚合214
6.2.4 IP区间聚合217
6.2.5 Term聚合221
6.2.6 直方图聚合227
6.2.7 过滤器聚合231
6.2.8 多过滤器聚合232
第7章 查看API235
7.1 查看子目录235
7.2 应用实例及参数236
7.2.1 v参数236
7.2.2 help参数236
7.2.3 h参数236
7.2.4 常用接口汇总236
第8章 集群 API238
8.1 节点过滤238
8.2 节点类型239
8.3 常用API241
8.3.1 查看集群及节点信息241
8.3.2 动态更新集群设置242
8.3.3 重置路由242
第9章 索引 API244
9.1 创建索引API244
9.1.1 索引设置244
9.1.2 映射245
9.1.3 别名245
9.2 删除索引246
9.3 判断索引是否存在246
9.4 打开关闭索引246
9.5 收缩索引246
9.6 映射247
9.6.1 数据类型248
9.6.2 映射属性设置253
第10章 特定域查询语言(DSL)258
10.1 查询和过滤上下文258
10.1.1 查询上下文258
10.1.2 过滤上下文258
10.2 匹配所有文档259
10.3 全文检索260
10.3.1 匹配查询260
10.3.2 模糊匹配260
10.3.3 短语匹配查询261
10.3.4 查询字符串261
第11章 SQL接口265
11.1 功能体验265
11.2 术语和约定266
11.3 SQL REST API267
11.3.1 返回数据格式267
11.3.2 过滤结果269
11.3.3 支持的参数270
11.4 SQL Translate API270
11.5 SQL语法介绍271
11.5.1 词法结构271
11.5.2 SQL命令275
第12章 Elasticsearch原理剖析283
12.1 为什么需要搜索引擎283
12.2 搜索引擎雏形283
12.3 搜索引擎实现原理283
12.3.1 分析284
12.3.2 Lucene倒排索引284
12.3.3 搜索过程284
12.3.4 结果排序286
12.4 分布式原理287
12.4.1 分布式索引过程288
12.4.2 分布式检索过程288
12.4.3 分布式局部更新文档288
12.5 节点发现和集群形成机制289
12.5.1 集群形成过程289
12.5.2 重要配置291
第13章 Kibana入门介绍292
13.1 安装Kibana292
13.1.1 下载Kibana292
13.1.2 简单配置Kibana292
13.1.3 启动Kibana293
13.2 基础操作293
13.2.1 加载样例数据集293
13.2.2 探索航班数据集294
13.2.3 过滤数据295
13.2.4 查询数据295
13.2.5 探索数据296
13.2.6 编辑可视化组件297
13.3 构建Dashboard298
13.3.1 导入样例数据298
13.3.2 定义索引模式300
13.3.3 可视化组件介绍302
13.3.4 构建Dashboard302
第14章 构建集约化日志管理平台305
14.1 Elastic stack介绍305
14.2 日志的特征305
14.2.1 日志的重要性305
14.2.2 日志的特征306
14.2.3 日志的复杂性306
14.3 集约化解决方案306
附录A 参考资料及网址309
附录B 中文分词算法介绍310
附录C Head安装312
我在华为工作十多年,一直从事公司核心产品和项目的研发工作,后来加入中兴,直到今日我仍然在坚持从事研发工作。我始终认为,技术是个人立身之本、公司发展之能、社会进步之源。
我与本书作者相识已久。他于2013年就以项目负责人身份,主持研发了江苏省省级科研项目“基于物联网的智能输液系统”,领导团队攻克技术难点,顺利通过了专家的鉴定。我深知他是一位谦虚低调,甚至可以说是淡泊名利,但技术超群,追逐技术完美和至高点的人。尤其是在大数据和商业智能领域,本书作者深耕多年,可以说是该领域难得的“扫地僧”。
当本书作者找我写推荐序时,我心情激动,受宠若惊!当拿到尚未正式出版的书稿时,本着对读者负责的态度,我花了三天时间大致通读了一遍。本书通俗易懂的讲述方式,对Elasticsearch介绍的深度与广度,超出了所有我阅读过的关于Elasticsearch的书籍。作者敬业、务实的作风令我敬服。
本书全面涵盖Elasticsearch的技术,对初学者来说是一本实战类的入门和进阶书籍,对资深技术和运维人员是一本优秀的工具书。同时,本书穿插着作者独到的技术见解,集作者十年大数据经验之大成。
我向广大读者强烈推荐本书。我相信,通过阅读本书,读者的Elasticsearch开发能力将会得到提升。
中兴高级技术专家马士龙2020年5月
习近平同志指出: “谁掌握了数据,谁就掌握了主动权。”进入21世纪,以互联网、大数据、商业智能为代表的新一代信息技术迅猛发展,给世界经济的发展带来了新的契机。大数据被誉为未来的石油,是21世纪为珍贵的财产。
大数据领域需要解决以下三个问题。
(1) 如何存储数据
传统的关系数据库(MySQL、Oracle和Access等)主导了20世纪的数据存储模式,但当数据量达到太字节级,甚至拍字节级时,关系数据库表现出了难以解决的瓶颈问题。为了解决海量数据存储和分布式计算问题,Google Lab提出了Map/Reduce 和 Google File System(GFS)解决方案,Hadoop作为其中一个优秀的实现框架迅速得到了业界的认可和广泛应用。但Hadoop的存储模式决定了其并不支持对数据的实时检索和计算。还有其他的替代方案吗?为何不尝试Elasticsearch的分布式存储功能?
(2) 如何检索数据
在互联网时代的今天,信息的价值在很大程度上取决于其是否可实时传播和获取。在庞大的数据仓库中,如何快速获取少量有用的数据是必须解决的问题。数据的实时获取能力取决于数据的存储格式。有什么简单易用的实时数据获取方案吗?为何不尝试Elasticsearch的实时搜索功能?
(3) 如何展现数据
存储数据和检索数据是终目的吗?当然不是!数据的真正价值和终目的是为商业决策提供有力支撑。为此,必须挖掘出数据的内在规律,并用友好的形式呈现在很可能并不懂技术的决策者面前。什么样的数据展现形式有说服力,容易为决策者所接受和理解?毫无疑问是图和表。正所谓千言万语不如一张图!有什么现成的数据挖掘和可视化方案吗?为何不尝试基于Elasticsearch的可视化平台Kibana?
本书目的
通过阅读本书,读者可以全面掌握Elasticsearch的相关技术,使用Elasticsearch解决上述三个问题,并掌握作者十多年积累的大数据处理经验和技巧,成为大数据高手。
本书内容
本书基于Elasticsearch 7编写,共14章,前12章全面介绍Elasticsearch的安装部署、开发应用、性能调优、集群监控、设计原理、SQL接口等核心内容。第13章介绍基于Elasticsearch的可视化平台Kibana的基础内容。第14章介绍一个实战案例。前言Elasticsearch权威指南各章具体内容如下。
第1章介绍Elasticsearch的基本概念和基础操作,主要是让读者快速体验Elasticsearch的功能,对Elasticsearch有一个直观和大体的了解。
第2章详细介绍Elasticsearch的安装、启动和参数配置。本章关于参数配置部分的内容,可以直接用于生产环境的集群性能调优,读者可仔细阅读这部分内容,并细心体会。
第3章介绍Elasticsearch所遵循的API规范,为后续API相关部分的内容介绍打下基础。
第4~9章详细介绍Elasticsearch的各种API功能和使用方法,几乎每种API都配有示例。这部分内容是本书的重点,也是读者在实际工作中应用多的。
第10章介绍Elasticsearch的查询语言Query DSL。Query DSL是Elasticsearch特定的查询语言,所有的查询API都支持和遵循Query DSL约定的语法。
第11章介绍Elasticsearch所支持的SQL接口。SQL接口是比Query DSL更友好、更通用的一种接口形式,是Elasticsearch未来重点发展的一个方向。
第12章介绍搜索引擎的原理和Elasticsearch的分布式设计原理。通过阅读本章内容读者可进一步理解Elasticsearch的内部机制。
第13章介绍Elasticsearch的可视化平台Kibana的基础内容,让读者对Kibana有一个基本的理解。
第14章介绍一个实战案例,让读者进一步理解如何应用Elasticsearch进行系统设计。
本书特色
重点介绍可直接用于工作中的Elasticsearch的应用开发方法和技巧。
通过突出的形式呈现作者多年实际使用Elasticsearch的心得体会。
对书中代码进行详细注释,降低阅读门槛。
通过图解的形式介绍Elasticsearch复杂的内部设计原理和实现机制。
叙述方式通俗易懂。
本书读者
Elasticsearch的入门人员。
想深入了解Elasticsearch的技术人员。
准备从事或正在从事搜索引擎技术工作的技术人员。
准备从事或正在从事大数据存储、搜索、分析工作的技术人员。
Elasticsearch集群运维人员。
勘误和支持
在互联网时代,技术日新月异。有可能你刚买的书还没阅读完,书中涉及的技术就被升级,甚至被淘汰了。加之笔者水平有限,时间仓促,书中不可避免地会存在遗漏,恳请读者将遇到的问题或建议反馈给出版社,我们对此万分期待。
作者2020年5月于上海
评论
还没有评论。