具体描述
作者简介
朱林,资深开发人员,有16年开发经验,11年安全产品开发经验,对安全技术、日志分析有较深的研究。于2013年创立南京赛克蓝德网络科技有限公司,公司专注于安全产品的开发,目前主要开发的产品是赛克蓝德日志分析软件。
目录信息
第1章 Elasticsearch入门 1
1.1 Elasticsearch是什么 1
1.1.1 Elasticsearch的历史 2
1.1.2 相关产品 3
1.2 全文搜索 3
1.2.1 Lucene介绍 4
1.2.2 Lucene倒排索引 4
1.3 基础知识 6
1.3.1 Elasticsearch术语及概念 6
1.3.2 JSON介绍 10
1.4 安装配置 12
1.4.1 安装Java 12
1.4.2 安装Elasticsearch 12
1.4.3 配置 13
1.4.4 运行 15
1.4.5 停止 17
1.4.6 作为服务 17
1.4.7 版本升级 19
1.5 对外接口 21
1.5.1 API约定 22
1.5.2 REST介绍 25
1.5.3 Head插件安装 26
1.5.4 创建库 27
1.5.5 插入数据 28
1.5.6 修改文档 28
1.5.7 查询文档 29
1.5.8 删除文档 29
1.5.9 删除库 30
1.6 Java接口 30
1.6.1 Java接口说明 30
1.6.2 创建索引文档 33
1.6.3 增加文档 34
1.6.4 修改文档 35
1.6.5 查询文档 35
1.6.6 删除文档 35
1.7 小结 36
第2章 索引 37
2.1 索引管理 37
2.1.1 创建索引 37
2.1.2 删除索引 39
2.1.3 获取索引 39
2.1.4 打开/关闭索引 40
2.2 索引映射管理 41
2.2.1 增加映射 41
2.2.2 获取映射 44
2.2.3 获取字段映射 45
2.2.4 判断类型是否存在 46
2.3 索引别名 46
2.4 索引配置 51
2.4.1 更新索引配置 51
2.4.2 获取配置 52
2.4.3 索引分析 52
2.4.4 索引模板 54
2.4.5 复制配置 55
2.4.6 重建索引 56
2.5 索引监控 60
2.5.1 索引统计 60
2.5.2 索引分片 62
2.5.3 索引恢复 63
2.5.4 索引分片存储 64
2.6 状态管理 64
2.6.1 清除缓存 64
2.6.2 索引刷新 64
2.6.3 冲洗 65
2.6.4 合并索引 65
2.7 文档管理 66
2.7.1 增加文档 66
2.7.2 更新删除文档 69
2.7.3 查询文档 73
2.7.4 多文档操作 76
2.7.5 索引词频率 80
2.7.6 查询更新接口 83
2.8 小结 87
第3章 映射 88
3.1 概念 88
3.2 字段数据类型 90
3.2.1 核心数据类型 91
3.2.2 复杂数据类型 96
3.2.3 地理数据类型 100
3.2.4 专门数据类型 106
3.3 元字段 108
3.3.1 _all字段 109
3.3.2 _field_names字段 109
3.3.3 _id字段 110
3.3.4 _index字段 110
3.3.5 _meta字段 111
3.3.6 _parent字段 111
3.3.7 _routing字段 112
3.3.8 _source字段 114
3.3.9 _type字段 115
3.3.10 _uid字段 115
3.4 映射参数 116
3.4.1 analyzer参数 116
3.4.2 boost参数 118
3.4.3 coerce参数 119
3.4.4 copy_to参数 120
3.4.5 doc_values参数 121
3.4.6 dynamic参数 122
3.4.7 enabled参数 122
3.4.8 fielddata参数 123
3.4.9 format参数 126
3.4.10 geohash参数 128
3.4.11 geohash_precision参数 129
3.4.12 geohash_prefix参数 130
3.4.13 ignore_above参数 131
3.4.14 ignore_malformed参数 131
3.4.15 include_in_all参数 132
3.4.16 index参数 133
3.4.17 index_options参数 133
3.4.18 lat_lon参数 134
3.4.19 fields参数 135
3.4.20 norms参数 136
3.4.21 null_value参数 137
3.4.22 position_increment_gap参数 137
3.4.23 precision_step参数 138
3.4.24 properties参数 138
3.4.25 search_analyzer参数 139
3.4.26 similarity参数 140
3.4.27 store参数 141
3.4.28 term_vector参数 141
3.5 动态映射 142
3.5.1 概念 142
3.5.2 _default_映射 143
3.5.3 动态字段映射 143
3.5.4 动态模板 145
3.5.5 重写默认模板 148
3.6 小结 148
第4章 搜索 149
4.1 深入搜索 149
4.1.1 搜索方式 149
4.1.2 重新评分 153
4.1.3 滚动查询请求 155
4.1.4 隐藏内容查询 158
4.1.5 搜索相关函数 161
4.1.6 搜索模板 164
4.2 查询DSL 167
4.2.1 查询和过滤的区别 167
4.2.2 全文搜索 168
4.2.3 字段查询 179
4.2.4 复合查询 183
4.2.5 连接查询 188
4.2.6 地理查询 190
4.2.7 跨度查询 197
4.2.8 高亮显示 200
4.3 简化查询 203
4.4 小结 206
第5章 聚合 207
5.1 聚合的分类 207
5.2 度量聚合 209
5.2.1 平均值聚合 209
5.2.2 基数聚合 211
5.2.3 最大值聚合 213
5.2.4 最小值聚合 214
5.2.5 和聚合 214
5.2.6 值计数聚合 215
5.2.7 统计聚合 215
5.2.8 百分比聚合 215
5.2.9 百分比分级聚合 216
5.2.10 最高命中排行聚合 217
5.2.11 脚本度量聚合 217
5.2.12 地理边界聚合 221
5.2.13 地理重心聚合 222
5.3 分组聚合 223
5.3.1 子聚合 224
5.3.2 直方图聚合 226
5.3.3 日期直方图聚合 230
5.3.4 时间范围聚合 233
5.3.5 范围聚合 234
5.3.6 过滤聚合 235
5.3.7 多重过滤聚合 236
5.3.8 空值聚合 238
5.3.9 嵌套聚合 239
5.3.10 采样聚合 240
5.3.11 重要索引词聚合 242
5.3.12 索引词聚合 245
5.3.13 总体聚合 251
5.3.14 地理点距离聚合 251
5.3.15 地理散列网格聚合 253
5.3.16 IPv4范围聚合 255
5.4 管道聚合 257
5.4.1 平均分组聚合 259
5.4.2 移动平均聚合 261
5.4.3 总和分组聚合 262
5.4.4 总和累计聚合 262
5.4.5 最大分组聚合 264
5.4.6 最小分组聚合 265
5.4.7 统计分组聚合 266
5.4.8 百分位分组聚合 268
5.4.9 差值聚合 269
5.4.10 分组脚本聚合 273
5.4.11 串行差分聚合 275
5.4.12 分组选择器聚合 276
5.5 小结 277
第6章 集群管理 278
6.1 集群节点监控 278
6.1.1 集群健康值 278
6.1.2 集群状态 279
6.1.3 集群统计 280
6.1.4 集群任务管理 280
6.1.5 待定集群任务 281
6.1.6 节点信息 281
6.1.7 节点统计 282
6.2 集群分片迁移 283
6.3 集群节点配置 284
6.3.1 主节点 285
6.3.2 数据节点 286
6.3.3 客户端节点 286
6.3.4 部落节点 287
6.4 节点发现 287
6.4.1 主节点选举 288
6.4.2 故障检测 288
6.5 集群平衡配置 289
6.5.1 分片分配设置 289
6.5.2 基于磁盘的配置 290
6.5.3 分片智能分配 291
6.5.4 分片配置过滤 292
6.5.5 其他集群配置 293
6.6 小结 293
第7章 索引分词器 294
7.1 分词器的概念 294
7.2 中文分词器 298
7.3 插件 300
7.3.1 插件管理 301
7.3.2 插件安装 301
7.3.3 插件清单 302
7.4 小结 304
第8章 高级配置 305
8.1 网络相关配置 305
8.1.1 本地网关配置 305
8.1.2 HTTP配置 306
8.1.3 网络配置 307
8.1.4 传输配置 308
8.2 脚本配置 310
8.2.1 脚本使用 311
8.2.2 脚本配置 313
8.3 快照和恢复配置 318
8.4 线程池配置 324
8.5 索引配置 326
8.5.1 缓存配置 326
8.5.2 索引碎片分配 329
8.5.3 合并 332
8.5.4 相似模块 332
8.5.5 响应慢日志监控 333
8.5.6 存储 335
8.5.7 事务日志 336
8.6 小结 337
第9章 告警、监控和权限管理 338
9.1 告警 338
9.1.1 安装 338
9.1.2 结构 339
9.1.3 示例 352
9.1.4 告警输出配置 354
9.1.5 告警管理 355
9.2 监控 356
9.2.1 安装 356
9.2.2 配置 357
9.3 权限管理 360
9.3.1 工作原理 361
9.3.2 用户认证 361
9.3.3 角色管理 366
9.3.4 综合示例 368
9.4 小结 369
第10章 ELK应用 370
10.1 Logstash 370
10.1.1 配置 371
10.1.2 插件管理 374
10.2 Kibana配置 377
10.2.1 Discover 379
10.2.2 Visualize 381
10.2.3 Dashboard 383
10.2.4 Settings 386
10.3 综合示例 387
10.4 小结 390
附录 Elasticsearch 5.0的特性与改进 391
· · · · · · (收起)
读后感
非常差劲的一本书,全是硬翻译,译者自己都读不懂吧。给你举个例子,里面有原句:“方便人类的阅读”,脑壳秀逗了吧,难道这本书是给鬼读的吗?一个章节下来,基本不知道你在说什么,我以为自己问题,又重复读了几遍,还是不理解在说什么,只好弃读。你这样为了赚钱而出书,为...
学途无忧网ElasticSearch5实战课程 课程观看地址:http://www.xuetuwuyou.com/course/224 课程出自学途无忧网:http://www.xuetuwuyou.com 讲师:西瓜老师 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口...
学途无忧网ElasticSearch5实战课程 课程观看地址:http://www.xuetuwuyou.com/course/224 课程出自学途无忧网:http://www.xuetuwuyou.com 讲师:西瓜老师 ElasticSearch是一个基于Lucene的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于RESTful web接口...
花了大概半年时间翻完。此书作为工具书定位,是合适的,更多的细致的介绍每个内容的含义。但每块涉及又不深。在对于ES解析上,说明较少、比如主节点的选举,意犹未尽。 对于作者提到的结合多年实战写出,并不是非常认可。全书广而不深。如果对于了解原理,不推荐阅读。总体来说...
非常差劲的一本书,全是硬翻译,译者自己都读不懂吧。给你举个例子,里面有原句:“方便人类的阅读”,脑壳秀逗了吧,难道这本书是给鬼读的吗?一个章节下来,基本不知道你在说什么,我以为自己问题,又重复读了几遍,还是不理解在说什么,只好弃读。你这样为了赚钱而出书,为...
用户评价
这本书绝对是我近年来阅读过的关于 Elasticsearch 最具深度和广度的技术书籍之一。从入门级的概念解释,到底层架构的精细剖析,再到高级特性的应用技巧,作者展现了对 Elasticsearch 技术的全面掌握。它不仅仅是简单地罗列API或者展示代码片段,更重要的是,它深入浅出地讲解了 Elasticsearch 的设计哲学和演进脉络。例如,在解释索引的内部结构时,作者没有停留在分片和副本的简单描述,而是详细阐述了倒排索引的构建原理、词项字典(term dictionary)和词项向量(term vector)的作用,甚至还触及了字段数据(fielddata)和 doc values 的底层实现差异,这些对于理解 Elasticsearch 的搜索效率和内存占用至关重要。
这本书的知识体系非常完整,它循序渐进地引导读者掌握 Elasticsearch 的核心概念。从最基础的“索引”(index)、“类型”(type,尽管现在已不推荐使用)和“文档”(document)的 CRUD 操作,到更复杂的“查询 DSL”(Query DSL)的使用,以及如何构建不同类型的查询(如“match”、“term”、“range”等),作者都给予了详尽的讲解。书中对于“query context”和“filter context”的区别与联系的阐述,以及它们在性能上的影响,更是让我醍醐灌顶,明白如何更有效地利用 Elasticsearch 的查询能力。
除了核心的搜索和分析功能,这本书还花了相当大的篇幅来介绍 Elasticsearch 的其他高级特性,例如“地理位置搜索”(geospatial search)、“Suggesters”(建议功能)以及“Percolator”(预查询)。这些功能的讲解不仅提供了清晰的使用示例,还深入剖析了它们背后的实现原理。特别是关于地理位置搜索,书中解释了 Elasticsearch 如何利用“geohash”和“geopoint”来高效地处理地理空间数据,以及如何进行距离查询和范围查询,这对于开发 LBS 相关应用非常有帮助。
作者在处理“分析器”(analyzer)和“分词器”(tokenizer)的部分,真的是下了苦功。他不仅仅列举了各种内置的分析器,还详细阐述了自定义分析器的构建方法,包括如何组合不同的“token filter”和“char filter”来满足复杂的文本处理需求。例如,对于中文分词,书中提供了多种场景下的解决方案,并解释了不同分词器在准确性和召回率上的权衡。这让我明白了为什么同样的搜索语句在不同的配置下会有截然不同的结果,也为我优化中文搜索提供了坚实的理论基础和实践指导。
总而言之,这是一本让我受益匪浅的 Elasticsearch 技术书籍。它不仅内容翔实,讲解深入,而且实战性极强。无论你是刚刚接触 Elasticsearch 的新手,还是有一定经验的开发者,都能在这本书中找到自己需要的信息。我强烈推荐这本书给所有希望深入理解和掌握 Elasticsearch 的技术人员,它绝对会成为你工作中的得力助手,帮助你构建更强大、更高效的搜索和分析系统。
坦白说,在阅读这本书之前,我对 Elasticsearch 的理解大多停留在表面。我学会了如何构建一个基本的搜索,如何使用一些常见的聚合,但对于其底层的运行机制却知之甚少。这本书就像一把钥匙,为我打开了 Elasticsearch 的“黑盒子”。它详细解释了 Elasticsearch 的数据模型,包括文档(document)、字段(field)以及映射(mapping)的作用,以及 Elasticsearch 如何将这些概念转化为 Lucene 中的索引结构。特别是对“mapping”的深入解析,让我理解了如何根据不同的数据类型和查询需求来设计字段的映射,从而优化存储空间和查询效率。
这本书在实战部分的深度和实用性更是让人惊喜。作者并没有仅仅停留在“如何搜索”的层面,而是深入探讨了如何根据业务场景优化搜索性能,如何设计高效的索引结构,以及如何利用 Elasticsearch 进行复杂的分析和聚合。例如,对于“日期直方图”(date_histogram)和“ termos”(terms)聚合的用法,书中不仅提供了详细的代码示例,还分析了不同参数对性能的影响,以及如何结合“过滤”(filter)和“查询”(query)上下文来精确控制聚合结果。此外,书中关于 Elasticsearch 集群的部署、监控和维护的章节,也为我解决实际生产问题提供了宝贵的指导。
我尤其欣赏作者在讲解 Elasticsearch 的分布式特性时的细致入微。从分片的分配策略到节点的选举机制,再到数据在集群间的同步和故障转移,每一个环节都被清晰地呈现在读者面前。书中对“集群状态”(cluster state)的管理、主节点的角色以及 shard rebalancing 的过程进行了深入的剖析,让我理解了 Elasticsearch 在面对节点失效或网络分区时的韧性是如何实现的。特别是关于 Elasticsearch 如何处理分布式事务和保证数据一致性的部分,通过具体的场景模拟和底层原理的阐述,极大地增强了我对 Elasticsearch 在高可用性方面的认知。
这本书的另一个亮点在于它对 Elasticsearch 性能调优的系统性指导。作者从多个维度剖析了影响 Elasticsearch 性能的关键因素,包括硬件配置、JVM调优、索引设置、查询优化等等。他详细解释了诸如“refresh interval”、“translog”以及“flush”等参数的意义和影响,以及如何根据实际负载调整这些参数以获得最佳性能。此外,书中还提供了大量的性能分析工具和技巧,例如使用“profile API”来诊断慢查询,使用“circuit breaker”来防止内存溢出,这些实用的方法论对于任何需要构建高性能 Elasticsearch 集群的开发者来说都价值连城。
对于那些渴望深入理解 Elasticsearch 如何工作的开发者来说,这本书绝对是不可或缺的宝藏。它对 Lucene 的集成和依赖关系进行了详尽的说明,让读者能够理解 Elasticsearch 并非凭空出现,而是建立在强大的 Lucene 库之上。作者花费了大量的篇幅来解释 Lucene 的 Lucene 的 IndexWriter、IndexReader、IndexSearcher 等核心组件如何协同工作,以及 Elasticsearch 如何在其基础上封装和扩展,提供分布式特性和更友好的API。特别是关于 Elasticsearch 的事务机制、持久化策略以及数据的一致性保证,作者的解释令人拍案叫绝,让我对 Elasticsearch 在生产环境中的可靠性有了更深的信心。
流水线一样,实在是看的太枯燥了
快速读完,没有原理仅仅api使用
作者写这本书极不负责任,出版这种书有什么意义?
作者写这本书极不负责任,出版这种书有什么意义?
推荐看官方文档,这个有点老了