一本书讲透Elasticsearch:原理、进阶与工程实践 杨昌玉 著

一本书讲透Elasticsearch:原理、进阶与工程实践 杨昌玉 著
分享
扫描下方二维码分享到微信
打开微信,点击右上角”+“,
使用”扫一扫“即可将网页分享到朋友圈。
作者:
2024-01
版次: 1
ISBN: 9787111740353
定价: 129.00
装帧: 其他
开本: 16开
纸张: 胶版纸
页数: 504页
字数: 683千字
  • 这是一本关于Elasticsearch技术实战的教程,全面覆盖了Elastic Stack技术体系知识,旨在帮助读者深入了解Elasticsearch的核心技术和应用场景,同时掌握分布式搜索与分析引擎的设计思想和实现原理。 杨昌玉(铭毅天下)

    10多年工作经验的高级工程师,擅长大数据存储和检索。

    曾任职于上市公司、科研院所等,主导过PB级数据存储与检索系统项目,拥有多年Elasticsearch培训及咨询经验。Elastic认证专家、Elasticsearch中国合作培训讲师、Elasticsearch 中文社区2018年、2023年杰出贡献奖(排名Top5)获得者、阿里云MVP(大数据领域最有价值专家)、CSDN博客专家(排名Top150)、CSDN 2020年度优秀创作者。博客累计阅读量超1000万,并被阿里云、腾讯云、华为云、360doc、51CTO等知名媒体平台全量转载,在CSDN 2013年及2016年的博客征文大赛中获特等奖。“死磕Elasticsearch”知识星球发起人,拥有近2000名付费用户。“铭毅天下Elasticsearch”公众号及博客总计拥有近5万名关注者。成功指导近200人通过Elastic认证专家考试。 目  录Contents

    赞 誉

    前 言

    第一部分  Elastic Stack全局概览

    第1章 Elastic Stack全景 2

    1.1 Elasticsearch的过去、

    现在和未来 3

    1.1.1 Elasticsearch的过去 3

    1.1.2 Elasticsearch的现在 5

    1.1.3 Elasticsearch的未来 6

    1.2 Elastic Stack组成 7

    1.2.1 Elasticsearch概览 7

    1.2.2 Logstash概览 8

    1.2.3 Kibana概览 8

    1.2.4 Beats概览 9

    1.3 Elastic Stack的应用场景 9

    1.3.1 全文检索场景 10

    1.3.2 日志分析场景 10

    1.3.3 商业智能场景 10

    1.4 Elasticsearch竞品分析 10

    1.4.1 Apache Solr 11

    1.4.2 Splunk 11

    1.4.3 OpenSearch 11

    1.4.4 Doris 12

    1.4.5 ClickHouse 12

    1.5 本章小结 13

    第2章 Elasticsearch基础知识 14

    2.1 搜索引擎基础知识 14

    2.1.1 搜索引擎的目标 14

    2.1.2 搜索引擎的核心要求 15

    2.1.3 检索质量的评价指标 15

    2.1.4 倒排索引 16

    2.1.5 全文检索 18

    2.2 Elasticsearch的核心概念 19

    2.2.1 集群 20

    2.2.2 节点 20

    2.2.3 索引 20

    2.2.4 分片 20

    2.2.5 副本 21

    2.2.6 文档 21

    2.2.7 字段 22

    2.2.8 映射 22

    2.2.9 分词 23

    2.3 本章小结 23

    第3章 Elasticsearch集群部署 25

    3.1 Elastic Stack集群部署

    基础知识 25

    3.1.1 集群部署平台及操作

    系统的选型 26

    3.1.2 集群部署的主要步骤 26

    3.1.3 Elasticsearch集群堆

    内存设置 27

    3.1.4 Elasticsearch集群节点

    角色划分 29

    3.1.5 Elasticsearch集群核心

    配置解读 35

    3.2 Elasticsearch单节点集群与

    Kibana的极简部署 37

    3.2.1 Elasticsearch单节点

    集群极简部署 37

    3.2.2 Kibana极简部署 40

    3.3 Elasticsearch单节点集群与

    Kibana的自定义证书部署 42

    3.3.1 Elasticsearch单节点

    集群自定义证书部署 43

    3.3.2 Kibana自定义证书部署 44

    3.4 Elasticsearch多节点

    集群部署 46

    3.5 Kibana自带样例数据导入 47

    3.6 本章小结 48

    第二部分 Elasticsearch核心技术

    第4章 Elasticsearch索引 52

    4.1 索引的定义 52

    4.1.1 类比关系型数据库看索引 52

    4.1.2 索引定义的实现 53

    4.2 索引操作 56

    4.2.1 新增/创建索引 56

    4.2.2 删除索引 57

    4.2.3 修改索引 57

    4.2.4 查询索引 58

    4.3 索引别名 58

    4.3.1 别名的定义 58

    4.3.2 别名的实现 59

    4.3.3 别名应用的常见问题 60

    4.4 索引模板 62

    4.4.1 索引模板的定义 62

    4.4.2 索引模板的基础操作 64

    4.4.3 动态模板实战 64

    4.4.4 索引模板应用的常见问题 66

    4.5 本章小结 66

    第5章 Elasticsearch映射 68

    5.1 映射的定义 68

    5.1.1 认识映射 68

    5.1.2 元字段 69

    5.1.3 数据类型 69

    5.1.4 映射类型 72

    5.1.5 实战:映射创建后还

    可以更新吗 75

    5.2 Nested类型及应用 77

    5.2.1 Nested类型的定义 77

    5.2.2 Nested类型的操作 81

    5.3 Join类型及应用 83

    5.3.1 认识Join类型 83

    5.3.2 Join类型基础实战 83

    5.3.3 Join类型一对多实战 86

    5.4 Flattened类型及应用 89

    5.4.1 Elasticsearch字段膨胀问题 89

    5.4.2 Flattened类型的产生背景 90

    5.4.3 Flattened类型实战 91

    5.4.4 Flattened类型的不足 94

    5.5 多表关联设计 94

    5.5.1 Elasticsearch

    多表关联方案 94

    5.5.2 多表关联方案对比 95

    5.6 内部数据结构解读 96

    5.6.1 数据存储的基础知识 96

    5.6.2 倒排索引 96

    5.6.3 正排索引 97

    5.6.4 fielddata 98

    5.6.5 _source字段 100

    5.6.6 store字段 100

    5.7 详解null_value 102

    5.7.1 null_value的含义  103

    5.7.2 null_value使用的

    注意事项 104

    5.7.3 支持null_value的

    核心字段 105

    5.8 本章小结 106

    第6章 Elasticsearch分词 108

    6.1 认识分词 108

    6.2 为什么需要分词 109

    6.3 分词发生的阶段 109

    6.3.1 写入数据阶段 109

    6.3.2 执行检索阶段 109

    6.4 分词器的组成 110

    6.4.1 字符过滤 110

    6.4.2 文本切分为分词 111

    6.4.3 分词后再过滤 111

    6.5 分词器的分类 112

    6.6 特定业务场景的

    自定义分词案例 113

    6.6.1 实战问题拆解 113

    6.6.2 实现方案 114

    6.6.3 结果验证 115

    6.7 Ngram自定义分词案例 116

    6.7.1 实战问题拆解  117

    6.7.2 Ngram分词器定义  118

    6.7.3 Ngram分词实战  119

    6.7.4 Ngram分词选型的

    注意事项 121

    6.8 本章小结 121

    第7章 Elasticsearch预处理 123

    7.1 预处理定义 123

    7.2 预处理器分类 125

    7.3 预处理实现 125

    7.4 预处理实战案例 126

    7.4.1 字符串切分预处理 126

    7.4.2 字符串转JSON格式 127

    7.4.3 列表操作 128

    7.4.4 enrich预处理 129

    7.4.5 预处理实战的常见问题 137

    7.5 本章小结 138

    第8章 Elasticsearch文档 139

    8.1 新增文档 140

    8.1.1 文档ID 140

    8.1.2 新增单个文档 140

    8.1.3 新增批量文档 142

    8.2 删除文档 143

    8.2.1 单个文档删除 144

    8.2.2 批量文档删除 144

    8.3 修改/更新文档 145

    8.3.1 更新文档的前置条件 145

    8.3.2 单个文档部分更新 146

    8.3.3 全部文档更新 148

    8.3.4 批量文档更新 149

    8.3.5 取消更新 150

    8.4 reindex:迁移文档 151

    8.4.1 reindex操作的

    背景及定义 151

    8.4.2  同集群索引之间的

    全量数据迁移 152

    8.4.3 同集群索引之间基于

    特定条件的数据迁移 152

    8.4.4 不同集群索引之间的

    数据迁移 154

    8.4.5 查看及取消reindex任务 154

    8.4.6 业务零掉线情况下的

    数据迁移 155

    8.5 本章小结 155

    第9章 Elasticsearch脚本 156

    9.1 认识Elasticsearch脚本 156

    9.1.1 Elasticsearch脚本的背景 156

    9.1.2 Painless脚本语言简介 157

    9.2 Elasticsearch脚本的应用

    场景和模板 158

    9.3 Elasticsearch脚本实战 158

    9.3.1 自定义字段 158

    9.3.2 自定义评分 159

    9.3.3 自定义更新 159

    9.3.4 自定义reindex 160

    9.3.5 自定义聚合 161

    9.3.6 实战常见问题 162

    9.4 本章小结 163

    第10章 Elasticsearch检索 164

    10.1 检索选型指南 164

    10.1.1 Elasticsearch检索分类 165

    10.1.2 精准匹配检索和全文

    检索的本质区别 167

    10.1.3 精准匹配检索详解 170

    10.1.4 全文检索类型详解 179

    10.1.5 组合检索类型详解 183

    10.1.6 query和filter的区别 184

    10.2 高亮、排序和分页 186

    10.2.1 高亮 186

    10.2.2 排序 188

    10.2.3 分页 190

    10.3 自定义评分 191

    10.3.1 搜索结果相关度与

    自定义评分的关系 191

    10.3.2 控制Elasticsearch

    相关度 192

    10.3.3 计算相关度评分 192

    10.3.4 影响相关度评分的

    查询子句 193

    10.3.5 自定义评分定义 193

    10.4 检索模板 199

    10.4.1 检索模板基础知识 199

    10.4.2 检索模板实战问题及

    解决方案 201

    10.5 深度解读Elasticsearch

    分页查询 206

    10.5.1 from + size查询 206

    10.5.2 search_after查询 209

    10.5.3 scroll查询 212

    10.6 本章小结 214

    第11章 Elasticsearch聚合 215

    11.1 图解聚合 215

    11.1.1 数据源 215

    11.1.2 聚合分类 216

    11.1.3 聚合应用场景 226

    11.2 聚合后分页的新实现:

    组合聚合 226

    11.2.1 认识组合聚合 227

    11.2.2 组合聚合的应用场景 230

    11.2.3 组合聚合的核心功能 230

    11.2.4 利用组合聚合进行

    聚合后分页实战 231

    11.3 通过子聚合求解环比问题 233

    11.3.1 parent子聚合和sibling

    子聚合详解 234

    11.3.2 环比问题拆解 237

    11.3.3 环比问题求解实现 237

    11.3.4 bucket相关子聚合的

    常见问题 239

    11.4 Elasticsearch去重 240

    11.4.1 去重需求分析 240

    11.4.2 去重需求实现 240

    11.5 本章小结 243

    第12章  Elasticsearch集群 245

    12.1 冷热集群架构 245

    12.1.1 认识冷热集群架构 245

    12.1.2 冷热集群架构的

    应用场景 246

    12.1.3 冷热集群架构的优势 247

    12.1.4 冷热集群架构实战 247

    12.2 索引生命周期管理 249

    12.2.1 认识索引生命周期 249

    12.2.2 索引生命周期管理的

    历史演变 249

    12.2.3 索引生命周期管理的

    基础知识 250

    12.2.4 索引生命周期管理的

    核心概念 255

    12.2.5 索引生命周期管理实战:

    DSL命令行 256

    12.2.6 索引生命周期管理实战:Kibana图形化界面 258

    12.3 跨机房、跨机架部署 261

    12.3.1 跨机房、跨机架

    部署要求 261

    12.3.2 跨机房、跨机架

    部署实战 262

    12.4 集群/索引的备份与恢复 264

    12.4.1 常见的索引/

    集群的备份与恢复方案 264

    12.4.2 Elasticsearch快照和

    恢复功能 265

    12.4.3 elasticdump迁移 268

    12.5 快照生命周期管理 269

    12.5.1 认识快照生命周期 270

    12.5.2 快照生命周期管理实现 270

    12.5.3 恢复快照 274

    12.5.4 快照生命周期

    管理的常见命令 275

    12.5.5 通过Kibana图形化界面

    进行快照生命周期管理 277

    12.6 跨集群检索 279

    12.6.1 跨集群检索定义 279

    12.6.2 跨集群检索实战 279

    12.6.3 跨集群检索优势 282

    12.7 本章小结 282

    第13章 Elasticsearch安全 284

    13.1 集群安全基础 284

    13.1.1 Elasticsearch如何

    保障安全 284

    13.1.2 Elasticsearch X-Pack

    安全配置 286

    13.1.3 设置或重置账号和密码 286

    13.2 定义基于角色的访问控制 287

    13.3 如何安全使用Elasticsearch

    脚本 290

    13.3.1 Elasticsearch安全原则 290

    13.3.2 脚本类型细分 290

    13.3.3 脚本分级限制 292

    13.3.4 控制脚本的可用范围 293

    13.4 本章小结 293

    第14章 Elasticsearch运维 295

    14.1 Elasticsearch集群监控的

    维度及指标 295

    14.1.1 5个重要监控维度 295

    14.1.2 10个核心监控指标 302

    14.2 集群故障排查及修复指南 302

    14.2.1 集群健康状态的解读 303

    14.2.2 如何定位红色或

    黄色的索引 303

    14.3 运维及故障诊断的常用命令 308

    14.4 Elasticsearch监控指标

    可视化 310

    14.4.1 Elasticsearch监控的

    前置条件 310

    14.4.2 Metricbeat安装及Kibana

    可视化 312

    14.5 Elasticsearch日志 317

    14.5.1 Elasticsearch日志基础

    知识 317

    14.5.2 最低级别日志能否输出

    检索语句 319

    14.5.3 Elasticsearch slowlog的

    常见问题 319

    14.6 本章小结 322

    第三部分 Elasticsearch进阶指南

    第15章 Elasticsearch核心

    工作原理 326

    15.1 Elasticsearch文档版本的

    应用原理 326

    15.1.1 文档版本控制机制的

    产生背景 326

    15.1.2 Elasticsearch文档

    版本定义 327

    15.1.3 Elasticsearch文档

    版本冲突 328

    15.1.4 常见的并发控制策略 331

    15.1.5 如何解决或避免Elasticsearch文档版本冲突 332

    15.2 Elasticsearch文档更新/

    删除的原理 336

    15.2.1 更新/删除操作时文档

    版本号的变化 337

    15.2.2 文档删除、索引删除和

    文档更新的本质 338

    15.2.3 文档更新/删除的

    常见问题 339

    15.3 Elasticsearch写入的原理 341

    15.3.1 Elasticsearch写入的核心

    概念 342

    15.3.2 Elasticsearch写入的实现

    流程 343

    15.3.3 Elasticsearch refresh和

    flush操作 344

    15.4 Elasticsearch段合并的原理 345

    15.4.1 段的基础知识 345

    15.4.2 什么是段合并 346

    15.4.3 为什么要进行段合并 346

    15.4.4 段合并的潜在问题 346

    15.4.5 段合并问题的

    优化建议 347

    15.5 Elasticsearch检索的原理 347

    15.6 本章小结 349

    第16章 Elasticsearch性能优化 350

    16.1 Elasticsearch性能指标 350

    16.2 Elasticsearch通用的性能

    优化建议 351

    16.3 Elasticsearch写入优化 357

    16.3.1 写入优化建议 357

    16.3.2 写入过程监控 360

    16.4 Elasticsearch检索优化 361

    16.4.1 全量数据和大文档

    处理的优化建议 361

    16.4.2 数据建模层面的

    优化建议 361

    16.4.3 检索方法层面的

    优化建议 363

    16.4.4 性能优化的DSL

    命令行 367

    16.5 本章小结 370

    第17章 Elasticsearch实战

    “避坑”指南 372

    17.1 Elasticsearch分片 372

    17.1.1 常见分片问题 372

    17.1.2 分片大小如何影响性能 373

    17.1.3 分片及副本设置建议 373

    17.2 25个核心Elasticsearch

    默认值 375

    17.2.1 参数类型以及静态参数和

    动态参数的区别 375

    17.2.2 6个Elasticsearch集群级别

    参数的关键默认值 376

    17.2.3 7个Elasticsearch索引级别

    参数的关键默认值 377

    17.2.4 4个Elasticsearch映射级别

    参数的关键默认值 379

    17.2.5 8个其他关键默认值 380

    17.3 Elasticsearch线程池和队列 381

    17.3.1 线程池简介 382

    17.3.2 线程池类型 383

    17.3.3 线程池的基础知识 383

    17.3.4 队列的基础知识 384

    17.3.5 线程池实战问题及

    注意事项 388

    17.4 Elasticsearch热点线程 389

    17.4.1 热点线程简介 389

    17.4.2 热点线程支持的参数 389

    17.4.3 hot_threads API的

    应用原理 390

    17.4.4 hot_threads API的

    返回结果 391

    17.5 规划Elasticsearch集群规模

    和容量 393

    17.5.1 Elasticsearch基础架构 393

    17.5.2 维系Elasticsearch

    高性能的4种资源 394

    17.5.3 集群规模和容量的

    预估方法 395

    17.6 Elasticsearch Java客户端

    选型 398

    17.6.1 官方Elasticsearch Java

    客户端 398

    17.6.2 非官方Elasticsearch Java

    客户端 402

    17.6.3 如何进行Elasticsearch Java

    客户端选型 404

    17.7 Elasticsearch缓存 404

    17.7.1 Elasticsearch缓存分类 404

    17.7.2 查询与清理缓存 408

    17.8 Elasticsearch数据建模 409

    17.8.1 为什么要进行数据建模 409

    17.8.2 如何实现数据建模 411

    17.9 利用JMeter进行Elasticsearch

    性能测试 420

    17.9.1 Elasticsearch性能测试

    工具 420

    17.9.2 JMeter部署与启动 421

    17.9.3 关于JMeter性能测试的

    4点认知 423

    17.9.4 利用JMeter进行Elasticsearch 8.X性能测试 424

    17.9.5 JMeter性能测试与优化

    实战 428

    17.10 本章小结 431

    第四部分 Elasticsearch项目实战

    第18章 Elasticsearch知识库

    检索系统实战 434

    18.1 知识库检索系统的

    需求分析 434

    18.2 知识库检索系统的

    技术选型 435

    18.2.1 OpenOffice 436

    18.2.2 Tika 437

    18.2.3 Ingest Attachment 438

    18.2.4 FSCrawler 439

    18.2.5 Python Flask 439

    18.3 知识库检索系统的

    技术架构 440

    18.4 知识库检索系统的实现 441

    18.4.1 FSCrawler使用

    步骤详解 441

    18.4.2 系统实现效果展示 443

    18.4.3 数据统计可视化 445

    18.5 本章小结 446

    第19章 Elastic Stack大数据

    可视化系统实战 447

    19.1 大数据可视化系统的

    需求分析 447

    19.2 大数据可视化系统的

    技术架构 447

    19.3 大数据可视化系统的设计 448

    19.3.1 影评数据获取的可行性

    分析 448

    19.3.2 可分析的数据字段及其
  • 内容简介:
    这是一本关于Elasticsearch技术实战的教程,全面覆盖了Elastic Stack技术体系知识,旨在帮助读者深入了解Elasticsearch的核心技术和应用场景,同时掌握分布式搜索与分析引擎的设计思想和实现原理。
  • 作者简介:
    杨昌玉(铭毅天下)

    10多年工作经验的高级工程师,擅长大数据存储和检索。

    曾任职于上市公司、科研院所等,主导过PB级数据存储与检索系统项目,拥有多年Elasticsearch培训及咨询经验。Elastic认证专家、Elasticsearch中国合作培训讲师、Elasticsearch 中文社区2018年、2023年杰出贡献奖(排名Top5)获得者、阿里云MVP(大数据领域最有价值专家)、CSDN博客专家(排名Top150)、CSDN 2020年度优秀创作者。博客累计阅读量超1000万,并被阿里云、腾讯云、华为云、360doc、51CTO等知名媒体平台全量转载,在CSDN 2013年及2016年的博客征文大赛中获特等奖。“死磕Elasticsearch”知识星球发起人,拥有近2000名付费用户。“铭毅天下Elasticsearch”公众号及博客总计拥有近5万名关注者。成功指导近200人通过Elastic认证专家考试。
  • 目录:
    目  录Contents

    赞 誉

    前 言

    第一部分  Elastic Stack全局概览

    第1章 Elastic Stack全景 2

    1.1 Elasticsearch的过去、

    现在和未来 3

    1.1.1 Elasticsearch的过去 3

    1.1.2 Elasticsearch的现在 5

    1.1.3 Elasticsearch的未来 6

    1.2 Elastic Stack组成 7

    1.2.1 Elasticsearch概览 7

    1.2.2 Logstash概览 8

    1.2.3 Kibana概览 8

    1.2.4 Beats概览 9

    1.3 Elastic Stack的应用场景 9

    1.3.1 全文检索场景 10

    1.3.2 日志分析场景 10

    1.3.3 商业智能场景 10

    1.4 Elasticsearch竞品分析 10

    1.4.1 Apache Solr 11

    1.4.2 Splunk 11

    1.4.3 OpenSearch 11

    1.4.4 Doris 12

    1.4.5 ClickHouse 12

    1.5 本章小结 13

    第2章 Elasticsearch基础知识 14

    2.1 搜索引擎基础知识 14

    2.1.1 搜索引擎的目标 14

    2.1.2 搜索引擎的核心要求 15

    2.1.3 检索质量的评价指标 15

    2.1.4 倒排索引 16

    2.1.5 全文检索 18

    2.2 Elasticsearch的核心概念 19

    2.2.1 集群 20

    2.2.2 节点 20

    2.2.3 索引 20

    2.2.4 分片 20

    2.2.5 副本 21

    2.2.6 文档 21

    2.2.7 字段 22

    2.2.8 映射 22

    2.2.9 分词 23

    2.3 本章小结 23

    第3章 Elasticsearch集群部署 25

    3.1 Elastic Stack集群部署

    基础知识 25

    3.1.1 集群部署平台及操作

    系统的选型 26

    3.1.2 集群部署的主要步骤 26

    3.1.3 Elasticsearch集群堆

    内存设置 27

    3.1.4 Elasticsearch集群节点

    角色划分 29

    3.1.5 Elasticsearch集群核心

    配置解读 35

    3.2 Elasticsearch单节点集群与

    Kibana的极简部署 37

    3.2.1 Elasticsearch单节点

    集群极简部署 37

    3.2.2 Kibana极简部署 40

    3.3 Elasticsearch单节点集群与

    Kibana的自定义证书部署 42

    3.3.1 Elasticsearch单节点

    集群自定义证书部署 43

    3.3.2 Kibana自定义证书部署 44

    3.4 Elasticsearch多节点

    集群部署 46

    3.5 Kibana自带样例数据导入 47

    3.6 本章小结 48

    第二部分 Elasticsearch核心技术

    第4章 Elasticsearch索引 52

    4.1 索引的定义 52

    4.1.1 类比关系型数据库看索引 52

    4.1.2 索引定义的实现 53

    4.2 索引操作 56

    4.2.1 新增/创建索引 56

    4.2.2 删除索引 57

    4.2.3 修改索引 57

    4.2.4 查询索引 58

    4.3 索引别名 58

    4.3.1 别名的定义 58

    4.3.2 别名的实现 59

    4.3.3 别名应用的常见问题 60

    4.4 索引模板 62

    4.4.1 索引模板的定义 62

    4.4.2 索引模板的基础操作 64

    4.4.3 动态模板实战 64

    4.4.4 索引模板应用的常见问题 66

    4.5 本章小结 66

    第5章 Elasticsearch映射 68

    5.1 映射的定义 68

    5.1.1 认识映射 68

    5.1.2 元字段 69

    5.1.3 数据类型 69

    5.1.4 映射类型 72

    5.1.5 实战:映射创建后还

    可以更新吗 75

    5.2 Nested类型及应用 77

    5.2.1 Nested类型的定义 77

    5.2.2 Nested类型的操作 81

    5.3 Join类型及应用 83

    5.3.1 认识Join类型 83

    5.3.2 Join类型基础实战 83

    5.3.3 Join类型一对多实战 86

    5.4 Flattened类型及应用 89

    5.4.1 Elasticsearch字段膨胀问题 89

    5.4.2 Flattened类型的产生背景 90

    5.4.3 Flattened类型实战 91

    5.4.4 Flattened类型的不足 94

    5.5 多表关联设计 94

    5.5.1 Elasticsearch

    多表关联方案 94

    5.5.2 多表关联方案对比 95

    5.6 内部数据结构解读 96

    5.6.1 数据存储的基础知识 96

    5.6.2 倒排索引 96

    5.6.3 正排索引 97

    5.6.4 fielddata 98

    5.6.5 _source字段 100

    5.6.6 store字段 100

    5.7 详解null_value 102

    5.7.1 null_value的含义  103

    5.7.2 null_value使用的

    注意事项 104

    5.7.3 支持null_value的

    核心字段 105

    5.8 本章小结 106

    第6章 Elasticsearch分词 108

    6.1 认识分词 108

    6.2 为什么需要分词 109

    6.3 分词发生的阶段 109

    6.3.1 写入数据阶段 109

    6.3.2 执行检索阶段 109

    6.4 分词器的组成 110

    6.4.1 字符过滤 110

    6.4.2 文本切分为分词 111

    6.4.3 分词后再过滤 111

    6.5 分词器的分类 112

    6.6 特定业务场景的

    自定义分词案例 113

    6.6.1 实战问题拆解 113

    6.6.2 实现方案 114

    6.6.3 结果验证 115

    6.7 Ngram自定义分词案例 116

    6.7.1 实战问题拆解  117

    6.7.2 Ngram分词器定义  118

    6.7.3 Ngram分词实战  119

    6.7.4 Ngram分词选型的

    注意事项 121

    6.8 本章小结 121

    第7章 Elasticsearch预处理 123

    7.1 预处理定义 123

    7.2 预处理器分类 125

    7.3 预处理实现 125

    7.4 预处理实战案例 126

    7.4.1 字符串切分预处理 126

    7.4.2 字符串转JSON格式 127

    7.4.3 列表操作 128

    7.4.4 enrich预处理 129

    7.4.5 预处理实战的常见问题 137

    7.5 本章小结 138

    第8章 Elasticsearch文档 139

    8.1 新增文档 140

    8.1.1 文档ID 140

    8.1.2 新增单个文档 140

    8.1.3 新增批量文档 142

    8.2 删除文档 143

    8.2.1 单个文档删除 144

    8.2.2 批量文档删除 144

    8.3 修改/更新文档 145

    8.3.1 更新文档的前置条件 145

    8.3.2 单个文档部分更新 146

    8.3.3 全部文档更新 148

    8.3.4 批量文档更新 149

    8.3.5 取消更新 150

    8.4 reindex:迁移文档 151

    8.4.1 reindex操作的

    背景及定义 151

    8.4.2  同集群索引之间的

    全量数据迁移 152

    8.4.3 同集群索引之间基于

    特定条件的数据迁移 152

    8.4.4 不同集群索引之间的

    数据迁移 154

    8.4.5 查看及取消reindex任务 154

    8.4.6 业务零掉线情况下的

    数据迁移 155

    8.5 本章小结 155

    第9章 Elasticsearch脚本 156

    9.1 认识Elasticsearch脚本 156

    9.1.1 Elasticsearch脚本的背景 156

    9.1.2 Painless脚本语言简介 157

    9.2 Elasticsearch脚本的应用

    场景和模板 158

    9.3 Elasticsearch脚本实战 158

    9.3.1 自定义字段 158

    9.3.2 自定义评分 159

    9.3.3 自定义更新 159

    9.3.4 自定义reindex 160

    9.3.5 自定义聚合 161

    9.3.6 实战常见问题 162

    9.4 本章小结 163

    第10章 Elasticsearch检索 164

    10.1 检索选型指南 164

    10.1.1 Elasticsearch检索分类 165

    10.1.2 精准匹配检索和全文

    检索的本质区别 167

    10.1.3 精准匹配检索详解 170

    10.1.4 全文检索类型详解 179

    10.1.5 组合检索类型详解 183

    10.1.6 query和filter的区别 184

    10.2 高亮、排序和分页 186

    10.2.1 高亮 186

    10.2.2 排序 188

    10.2.3 分页 190

    10.3 自定义评分 191

    10.3.1 搜索结果相关度与

    自定义评分的关系 191

    10.3.2 控制Elasticsearch

    相关度 192

    10.3.3 计算相关度评分 192

    10.3.4 影响相关度评分的

    查询子句 193

    10.3.5 自定义评分定义 193

    10.4 检索模板 199

    10.4.1 检索模板基础知识 199

    10.4.2 检索模板实战问题及

    解决方案 201

    10.5 深度解读Elasticsearch

    分页查询 206

    10.5.1 from + size查询 206

    10.5.2 search_after查询 209

    10.5.3 scroll查询 212

    10.6 本章小结 214

    第11章 Elasticsearch聚合 215

    11.1 图解聚合 215

    11.1.1 数据源 215

    11.1.2 聚合分类 216

    11.1.3 聚合应用场景 226

    11.2 聚合后分页的新实现:

    组合聚合 226

    11.2.1 认识组合聚合 227

    11.2.2 组合聚合的应用场景 230

    11.2.3 组合聚合的核心功能 230

    11.2.4 利用组合聚合进行

    聚合后分页实战 231

    11.3 通过子聚合求解环比问题 233

    11.3.1 parent子聚合和sibling

    子聚合详解 234

    11.3.2 环比问题拆解 237

    11.3.3 环比问题求解实现 237

    11.3.4 bucket相关子聚合的

    常见问题 239

    11.4 Elasticsearch去重 240

    11.4.1 去重需求分析 240

    11.4.2 去重需求实现 240

    11.5 本章小结 243

    第12章  Elasticsearch集群 245

    12.1 冷热集群架构 245

    12.1.1 认识冷热集群架构 245

    12.1.2 冷热集群架构的

    应用场景 246

    12.1.3 冷热集群架构的优势 247

    12.1.4 冷热集群架构实战 247

    12.2 索引生命周期管理 249

    12.2.1 认识索引生命周期 249

    12.2.2 索引生命周期管理的

    历史演变 249

    12.2.3 索引生命周期管理的

    基础知识 250

    12.2.4 索引生命周期管理的

    核心概念 255

    12.2.5 索引生命周期管理实战:

    DSL命令行 256

    12.2.6 索引生命周期管理实战:Kibana图形化界面 258

    12.3 跨机房、跨机架部署 261

    12.3.1 跨机房、跨机架

    部署要求 261

    12.3.2 跨机房、跨机架

    部署实战 262

    12.4 集群/索引的备份与恢复 264

    12.4.1 常见的索引/

    集群的备份与恢复方案 264

    12.4.2 Elasticsearch快照和

    恢复功能 265

    12.4.3 elasticdump迁移 268

    12.5 快照生命周期管理 269

    12.5.1 认识快照生命周期 270

    12.5.2 快照生命周期管理实现 270

    12.5.3 恢复快照 274

    12.5.4 快照生命周期

    管理的常见命令 275

    12.5.5 通过Kibana图形化界面

    进行快照生命周期管理 277

    12.6 跨集群检索 279

    12.6.1 跨集群检索定义 279

    12.6.2 跨集群检索实战 279

    12.6.3 跨集群检索优势 282

    12.7 本章小结 282

    第13章 Elasticsearch安全 284

    13.1 集群安全基础 284

    13.1.1 Elasticsearch如何

    保障安全 284

    13.1.2 Elasticsearch X-Pack

    安全配置 286

    13.1.3 设置或重置账号和密码 286

    13.2 定义基于角色的访问控制 287

    13.3 如何安全使用Elasticsearch

    脚本 290

    13.3.1 Elasticsearch安全原则 290

    13.3.2 脚本类型细分 290

    13.3.3 脚本分级限制 292

    13.3.4 控制脚本的可用范围 293

    13.4 本章小结 293

    第14章 Elasticsearch运维 295

    14.1 Elasticsearch集群监控的

    维度及指标 295

    14.1.1 5个重要监控维度 295

    14.1.2 10个核心监控指标 302

    14.2 集群故障排查及修复指南 302

    14.2.1 集群健康状态的解读 303

    14.2.2 如何定位红色或

    黄色的索引 303

    14.3 运维及故障诊断的常用命令 308

    14.4 Elasticsearch监控指标

    可视化 310

    14.4.1 Elasticsearch监控的

    前置条件 310

    14.4.2 Metricbeat安装及Kibana

    可视化 312

    14.5 Elasticsearch日志 317

    14.5.1 Elasticsearch日志基础

    知识 317

    14.5.2 最低级别日志能否输出

    检索语句 319

    14.5.3 Elasticsearch slowlog的

    常见问题 319

    14.6 本章小结 322

    第三部分 Elasticsearch进阶指南

    第15章 Elasticsearch核心

    工作原理 326

    15.1 Elasticsearch文档版本的

    应用原理 326

    15.1.1 文档版本控制机制的

    产生背景 326

    15.1.2 Elasticsearch文档

    版本定义 327

    15.1.3 Elasticsearch文档

    版本冲突 328

    15.1.4 常见的并发控制策略 331

    15.1.5 如何解决或避免Elasticsearch文档版本冲突 332

    15.2 Elasticsearch文档更新/

    删除的原理 336

    15.2.1 更新/删除操作时文档

    版本号的变化 337

    15.2.2 文档删除、索引删除和

    文档更新的本质 338

    15.2.3 文档更新/删除的

    常见问题 339

    15.3 Elasticsearch写入的原理 341

    15.3.1 Elasticsearch写入的核心

    概念 342

    15.3.2 Elasticsearch写入的实现

    流程 343

    15.3.3 Elasticsearch refresh和

    flush操作 344

    15.4 Elasticsearch段合并的原理 345

    15.4.1 段的基础知识 345

    15.4.2 什么是段合并 346

    15.4.3 为什么要进行段合并 346

    15.4.4 段合并的潜在问题 346

    15.4.5 段合并问题的

    优化建议 347

    15.5 Elasticsearch检索的原理 347

    15.6 本章小结 349

    第16章 Elasticsearch性能优化 350

    16.1 Elasticsearch性能指标 350

    16.2 Elasticsearch通用的性能

    优化建议 351

    16.3 Elasticsearch写入优化 357

    16.3.1 写入优化建议 357

    16.3.2 写入过程监控 360

    16.4 Elasticsearch检索优化 361

    16.4.1 全量数据和大文档

    处理的优化建议 361

    16.4.2 数据建模层面的

    优化建议 361

    16.4.3 检索方法层面的

    优化建议 363

    16.4.4 性能优化的DSL

    命令行 367

    16.5 本章小结 370

    第17章 Elasticsearch实战

    “避坑”指南 372

    17.1 Elasticsearch分片 372

    17.1.1 常见分片问题 372

    17.1.2 分片大小如何影响性能 373

    17.1.3 分片及副本设置建议 373

    17.2 25个核心Elasticsearch

    默认值 375

    17.2.1 参数类型以及静态参数和

    动态参数的区别 375

    17.2.2 6个Elasticsearch集群级别

    参数的关键默认值 376

    17.2.3 7个Elasticsearch索引级别

    参数的关键默认值 377

    17.2.4 4个Elasticsearch映射级别

    参数的关键默认值 379

    17.2.5 8个其他关键默认值 380

    17.3 Elasticsearch线程池和队列 381

    17.3.1 线程池简介 382

    17.3.2 线程池类型 383

    17.3.3 线程池的基础知识 383

    17.3.4 队列的基础知识 384

    17.3.5 线程池实战问题及

    注意事项 388

    17.4 Elasticsearch热点线程 389

    17.4.1 热点线程简介 389

    17.4.2 热点线程支持的参数 389

    17.4.3 hot_threads API的

    应用原理 390

    17.4.4 hot_threads API的

    返回结果 391

    17.5 规划Elasticsearch集群规模

    和容量 393

    17.5.1 Elasticsearch基础架构 393

    17.5.2 维系Elasticsearch

    高性能的4种资源 394

    17.5.3 集群规模和容量的

    预估方法 395

    17.6 Elasticsearch Java客户端

    选型 398

    17.6.1 官方Elasticsearch Java

    客户端 398

    17.6.2 非官方Elasticsearch Java

    客户端 402

    17.6.3 如何进行Elasticsearch Java

    客户端选型 404

    17.7 Elasticsearch缓存 404

    17.7.1 Elasticsearch缓存分类 404

    17.7.2 查询与清理缓存 408

    17.8 Elasticsearch数据建模 409

    17.8.1 为什么要进行数据建模 409

    17.8.2 如何实现数据建模 411

    17.9 利用JMeter进行Elasticsearch

    性能测试 420

    17.9.1 Elasticsearch性能测试

    工具 420

    17.9.2 JMeter部署与启动 421

    17.9.3 关于JMeter性能测试的

    4点认知 423

    17.9.4 利用JMeter进行Elasticsearch 8.X性能测试 424

    17.9.5 JMeter性能测试与优化

    实战 428

    17.10 本章小结 431

    第四部分 Elasticsearch项目实战

    第18章 Elasticsearch知识库

    检索系统实战 434

    18.1 知识库检索系统的

    需求分析 434

    18.2 知识库检索系统的

    技术选型 435

    18.2.1 OpenOffice 436

    18.2.2 Tika 437

    18.2.3 Ingest Attachment 438

    18.2.4 FSCrawler 439

    18.2.5 Python Flask 439

    18.3 知识库检索系统的

    技术架构 440

    18.4 知识库检索系统的实现 441

    18.4.1 FSCrawler使用

    步骤详解 441

    18.4.2 系统实现效果展示 443

    18.4.3 数据统计可视化 445

    18.5 本章小结 446

    第19章 Elastic Stack大数据

    可视化系统实战 447

    19.1 大数据可视化系统的

    需求分析 447

    19.2 大数据可视化系统的

    技术架构 447

    19.3 大数据可视化系统的设计 448

    19.3.1 影评数据获取的可行性

    分析 448

    19.3.2 可分析的数据字段及其
查看详情
12