猜你喜欢
Elasticsearch权威指南

Elasticsearch权威指南

书籍作者:赵建亭 ISBN:9787302565949
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:6944
创建日期:2021-10-07 发布日期:2021-10-07
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
内容简介

基于elasticsearch7.x编写,全面、准确地讲解elasticsearch的安装、开发、技术原理、生产环境的性能调优等内容。适合有意从事搜索引起、大数据、商业智能等行业的入门人员学习参考,也是资深技术人员很好的一本参考书籍。

作者简介

工学硕士、高级架构师、高级程序员(国家工信部认证)、江苏省级科研项目负责人(基于物联网的智能输液系统,编号BC2012071。在大数据平台、数据仓库、实时统计、可视化等大数据领域具有深度整合能力。

前言


我在华为工作十多年,一直从事公司核心产品和项目的研发工作,后来加入中兴,直到今日我仍然在坚持从事研发工作。我始终认为,技术是个人立身之本、公司发展之能、社会进步之源。

我与本书作者相识已久。他于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月于上海


目录

第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.3Elasticsearch查询语言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目录Elasticsearch权威指南

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.10删除设置属性33

2.3.11可重载的安全设置33

2.3.12日志配置33

2.3.13配置日志级别35

2.3.14JSON日志格式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.9HTTP导出器设置40

2.4.10XPack监控TLS/SSL相关设置42

2.4.11XPack监控TLS/SSL密钥和可信证书设置42

2.4.12PEM编码文件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.6Heap设置45

2.5.7JVM heap dump目录设置46

2.5.8GC日志设置46

2.5.9临时文件存储目录46

2.5.10JVM致命错误日志设置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.6DNS缓存设置50

2.6.7JNA临时目录挂载位置50

2.7启动检查50

2.7.1Heap大小检查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.8JVM模式检查53

2.7.9JVM垃圾收集机制检查53

2.7.10系统调用过滤器检查53

2.7.11发现功能配置检查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.10缩略处理65

3.3.11距离单位65

3.3.12模糊性66

3.3.13启用堆栈跟踪66

3.3.14查询字符串中的请求正文67

3.3.15ContentType要求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.2ID自动生成74

4.2.3路由75

4.2.4分发75

4.2.5等待活动分片75

4.2.6detect_noop参数76

4.3GET API76

4.3.1实时性77

4.3.2字段选择77

4.3.3存储字段77

4.3.4直接获取_source 78

4.3.5路由78

4.3.6preference参数79

4.3.7refresh参数79

4.3.8分发79

4.3.9版本支持79

4.4删除API79

4.5查询删除80

4.5.1URL参数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.4upsert元素90

4.6.5scripted_upsert参数91

4.6.6doc_as_upsert 参数92

4.7查询更新92

4.7.1URL参数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.8MGet API98

4.8.1_source 过滤99

4.8.2存储字段100

4.8.3路由100

4.8.4重新索引101

4.9跨集群索引106

4.10批量操作API107

4.10.1路由110

4.10.2更新110

4.11Term向量111

4.11.1返回值111

4.11.2Term过滤112

4.11.3行为分析114

4.11.4获取多个文档的Term向量118

4.12refresh参数119

4.12.1如何选择refresh 的值120

4.12.2强制刷新120

4.13乐观并发控制121

第5章搜索数据123

5.1基本概念和机制123

5.2搜索API125

5.3URI模式125

5.4Body模式126

5.4.1Explain 参数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.9post_filter过滤155

5.4.10分片选择157

5.4.11重排序158

5.4.12脚本字段160

5.4.13滚动查询161

5.4.14search_after参数164

5.4.15搜索类型166

5.4.16排序166

5.4.17_source 字段过滤173

5.4.18存储字段174

5.4.19total返回值详解175

5.4.20版本176

5.5返回搜索分片信息177

5.6Count API177

5.7Validate 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.10脚本聚合198

6.1.11顶部命中聚合200

6.1.12单值度量聚合205

6.1.13中位数绝对偏差聚合206

6.2存储桶聚合207

6.2.1邻接矩阵聚合207

6.2.2区间聚合209

6.2.3日期区间聚合214

6.2.4IP区间聚合217

6.2.5Term聚合221

6.2.6直方图聚合227

6.2.7过滤器聚合231

6.2.8多过滤器聚合232

第7章查看API235

7.1查看子目录235

7.2应用实例及参数236

7.2.1v参数236

7.2.2help参数236

7.2.3h参数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.3SQL REST API267

11.3.1返回数据格式267

11.3.2过滤结果269

11.3.3支持的参数270

11.4SQL Translate API270

11.5SQL语法介绍271

11.5.1词法结构271

11.5.2SQL命令275

第12章Elasticsearch原理剖析283

12.1为什么需要搜索引擎283

12.2搜索引擎雏形283

12.3搜索引擎实现原理283

12.3.1分析284

12.3.2Lucene倒排索引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.1Elastic stack介绍305

14.2日志的特征305

14.2.1日志的重要性305

14.2.2日志的特征306

14.2.3日志的复杂性306

14.3集约化解决方案306

附录A参考资料及网址309

附录B中文分词算法介绍310附录CHead安装312


短评

本书由华为、中兴高级技术专家全面审校并撰序推荐!讲述方式通俗易懂,以实战为主线,全面展现了作者十多年的大数据实战经验!线上环境的调优方法以突出形式展现是本书一大两点!

2021-02-17 09:49:36

有很多干货,值得一读

2021-02-02 21:24:20

标签
数据库,programming