特色1:基于Elasticsearch 7.X 系列版本编写。
特色2:聚焦初学者学习和实战需要,不求知识点全部覆盖,但求必备知识透彻易懂。
特色3:让初学者快速上手的同时,帮助他们构建搜索引擎全景、洞悉Elasticsearch 生态、建立关联知识网络,形成知识体系。
特色4:内容由浅入深,先让初学者会用,再介绍背后的原理。
本书基于Elasticsearch 7.X版本编写,内容由浅入深,先教会初学者使用,再介绍背后的原理。本书共分为三大部分,分别是Elasticsearch前传、Elasticsearch实战、Elasticsearch生态。Elasticsearch前传部分主要介绍搜索技术发展史和基本知识,并介绍搜索引擎技术原理,为读者构建搜索引擎全景。Elasticsearch实战部分主要介绍Elasticsearch的核心概念和架构设计,并重点介绍客户、文档、搜索和索引等实战内容,待读者能上手实战后,再介绍这些内容的背后实现原理和关联知识,为读者构建知识网络。Elasticsearch生态部分主要介绍插件的使用和管理,以及Elastic Stack生态圈。本书适合有一定基础知识的初、中级Elasticsearch学习者阅读。
第一部分 Elasticsearch 前传
第1 章 搜索技术发展史 2
1.1 正说搜索技术发展史 2
1.2 Elasticsearch 简介 . 5
1.3 Lucene 简介 . 5
1.4 知识点关联 . 7
1.5 小结 . 15
第2 章 搜索技术基本知识 16
2.1 数据搜索方式 . 16
2.2 搜索引擎工作原理 17
2.3 网络爬虫工作原理 18
2.4 网页分析 . 20
2.5 倒排索引 . 23
2.6 结果排序 . 26
2.7 中文分词实战 . 27
2.7.1 Ansj 中文分词 . 27
2.7.2 Jcseg 轻量级 Java 中文分词器 . 30
2.8 知识点关联 . 38
2.9 小结 . 39
第二部分 Elasticsearch 实战
第3 章 初识Elasticsearch 42
3.1 Elasticsearch 简介 . 42
3.2 Elasticsearch 的安装与配置 43
3.2.1 安装Java 环境 . 43
3.2.2 Elasticsearch 的安装 47
3.2.3 Elasticsearch 的配置 52
3.3 Elasticsearch 的核心概念 . 60
3.4 Elasticsearch 的架构设计 . 62
3.4.1 Elasticsearch 的节点自动发现机制 64
3.4.2 节点类型 66
3.4.3 分片和路由 66
3.4.4 数据写入过程 67
3.5 知识点关联 . 70
3.6 小结 . 75
第4 章 初级客户端实战 76
4.1 初级客户端初始化 76
4.2 提交请求 . 83
4.3 对请求结果的解析 89
4.4 常见通用设置 . 91
4.5 高级客户端初始化 95
4.6 创建请求对象模式 98
4.7 知识点关联 . 98
4.8 小结 . 100
第5 章 高级客户端文档实战一 . 101
5.1 文档 . 102
5.2 文档索引 . 103
5.3 文档索引查询 . 114
5.4 文档存在性校验 . 118
5.5 删除文档索引 . 121
5.6 更新文档索引 . 125
5.7 获取文档索引的词向量 131
5.8 文档处理过程解析 138
5.8.1 文档的索引过程 138
5.8.2 文档在文件系统中的处理过程 140
5.9 知识点关联 . 145
5.10 小结 . 146
第6 章 高级客户端文档实战二 . 147
6.1 批量请求 . 148
6.2 批量处理器 . 154
6.3 MultiGet 批量处理实战 158
6.4 文档ReIndex 实战 164
6.5 文档查询时更新实战 171
6.6 文档查询时删除实战 176
6.7 获取文档索引的多词向量 180
6.8 文档处理过程解析 185
6.8.1 Elasticsearch 文档分片存储 185
6.8.2 Elasticsearch 的数据分区 187
6.9 知识点关联 . 188
6.10 小结 . 189
第7 章 搜索实战 . 190
7.1 搜索API 191
7.2 滚动搜索 . 208
7.3 批量搜索 . 220
7.4 跨索引字段搜索 . 228
7.5 搜索结果的排序评估 235
7.6 搜索结果解释 . 243
7.7 统计 . 251
7.8 搜索过程解析 . 258
7.8.1 对已知文档的搜索 258
7.8.2 对未知文档的搜索 259
7.8.3 对词条的搜索 260
7.9 知识点关联 . 262
7.10 小结 . 262
第8 章 索引实战 . 263
8.1 字段索引分析 . 264
8.2 创建索引 . 271
8.3 获取索引 . 277
8.4 删除索引 . 282
8.5 索引存在验证 . 285
8.6 打开索引 . 289
8.7 关闭索引 . 292
8.8 缩小索引 . 296
8.9 拆分索引 . 299
8.10 刷新索引 . 303
8.11 Flush 刷新 306
8.12 同步Flush 刷新 . 310
8.13 清除索引缓存 . 314
8.14 强制合并索引 . 317
8.15 滚动索引 . 322
8.16 索引别名 . 326
8.17 索引别名存在校验 330
8.18 获取索引别名 . 333
8.19 索引原理解析 . 337
8.19.1 近实时搜索的实现 337
8.19.2 倒排索引的压缩 337
8.20 知识点关联 . 338
8.21 小结 . 339
第三部分 Elasticsearch 生态
第9 章 Elasticsearch 插件 342
9.1 插件简介 . 342
9.2 插件管理 . 343
9.3 分析插件 . 346
9.3.1 分析插件简介 346
9.3.2 Elasticsearch 中的分析插件 347
9.3.3 ICU 分析插件 349
9.3.4 智能中文分析插件 360
9.4 API 扩展插件 367
9.5 监控插件 . 368
9.6 数据提取插件 . 368
9.7 常用插件实战 . 369
9.7.1 Head 插件 369
9.7.2 Cerebro 插件 385
9.8 知识点关联 . 393
9.9 小结 . 394
第10 章 Elasticsearch 生态圈 395
10.1 ELK 395
10.1.1 Elastic Stack . 395
10.1.2 Elastic Stack 版本的由来 396
10.1.3 ELK 实战的背景 . 397
10.1.4 ELK 的部署架构变迁 . 397
10.2 Logstash . 400
10.2.1 Logstash 简介 400
10.2.2 Logstash 的输入模块 402
10.2.3 Logstash 过滤器 403
10.2.4 Logstash 的输出模块 404
10.3 Kibana 405
10.3.1 Kibana 简介 . 405
10.3.2 连接Elasticsearch 406
10.4 Beats 410
10.4.1 Beats 简介 410
10.4.2 Beats 轻量级设计的实现 412
10.4.3 Beats 的架构 412
10.5 知识点关联 . 413
10.6 小结 . 414
Elasticsearch 是一种流行的企业级搜索引擎,牛冬从一线研发的角度,结合自己的实践经验撰写《Elasticsearch 实战与原理解析》一书,书中既有对搜索技术发展历史的总结,也有对实战经验的思考和分享;既可以帮助读者建立搜索引擎知识网络体系,也可以对实际应用给出建议和指引。
在好未来集团,牛冬曾任职于过多个事业部的技术团队,有着多元的技术视角,期待与读者相互碰撞,彼此激发。
——好未来集团CTO、开放平台事业部总裁 黄琰
本书基于Elasticsearch 7版本编写,非常适合初学者快速入门和投入实战,由浅入深的教法经过了实际培训的检验,效果很好,是一本难得的Elasticsearch学习宝典。
——好未来集团副CTO、培优产研负责人、好未来技术委员会主席 田密
Elasticsearch是计算机行业内常用的搜索引擎架构,牛冬是好未来技术体系的Java首席培训讲师,对Elasticsearch有很深刻的理解和多种业务场景的应用经验。本书详细介绍了Elasticsearch新版本的特性,从技术实现到实际案例,面面俱到,非常具有实战价值。相信此书能给业界的技术人带来很好的指引。
­————好未来集团学而思培优技术总监 侯文
Elasticsearch是目业界流行的开源搜索引擎,不仅在互联网巨头中被广泛使用,在互联网新贵中也被宠爱有加。在海量大数据的加持下,Elasticsearch在搜索、推荐、数据分析等应用场景上有很大的发挥前景,通过《Elasticsearch 实战与原理解析》一书的学习,既可以让我们快速掌握一门新的技能,也可以提升工程师的技术思维,适合正在技术方向上以求快速成长的技术伙伴们。
­————好未来集团学而思培优技术总监 王海平