为什么需要这门课:解决搜索与日志分析的底层能力缺口

在学习 Elasticsearch 之前,许多开发者习惯将复杂的查询逻辑压在数据库上,或者仅使用简单的模糊匹配。当数据量达到千万级,或者需要对日志进行多维度聚合分析时,传统关系型数据库的性能瓶颈就会暴露无遗。本课程的核心价值在于补齐这一关键能力缺口:让你掌握分布式搜索引擎的构建原理与应用方法。

课程从 Elasticsearch 的发展历史与 Elastic Stack 家族成员切入,帮助学习者建立全局视野,理解搜索、日志采集与分析背后的技术生态。通过 Docker 容器快速搭建 Elasticsearch、Kibana 和 Cerebro 的运行环境,你可以立即在本地复现生产场景,消除环境配置的初始阻力。这对于正在备考技术认证或准备面试的高阶开发者尤为关键,因为“能跑通环境”往往是解决复杂分布式问题的第一步。

前置基础与学习路径建议:补齐哪些短板再动手

本课程适合具备 Java 开发基础、熟悉 Linux 基本操作以及了解 RESTful API 概念的中级开发者。虽然课程从安装配置讲起,但若要真正内化知识,建议你先回顾一下 HTTP 协议的基本原理,特别是 GET 和 POST 请求在语义上的区别,因为这直接关联到后续的 CRUD 操作与搜索 API 设计。

建议的学习顺序应遵循“由表及里、由用到源”的逻辑。首先完成第 05 至 08 节的内容,掌握 ES 的安装、Kibana 界面的基本浏览以及 Logstash 的数据导入能力,建立起直观的运维感知。紧接着,务必精读第 09 至 11 节,深入理解索引、文档、节点、集群、分片及副本等核心概念,这是区分“使用者”与“工程师”的分水岭。对于第 12 至 14 节关于倒排索引和分词器的内容,不要急于跳过,它们是理解查询性能差异的理论基石。最后,在第 15 至 17 节中,通过 URI Search 与 Query DSL 的对比练习,你会清晰地看到从简单关键字匹配到复杂结构化查询的演进过程。

学完能独立做什么:资料如何配合实战闭环

完成本课程后,你将能够独立部署高可用的 Elasticsearch 集群,并熟练运用 Kibana 进行可视化管理。更重要的是,你将具备针对海量数据设计索引策略的能力,能够根据业务需求选择合适的分词器(Analyzer)以优化检索准确率。在查询层面,你不再依赖简单的关键词过滤,而是能够编写复杂的 Query DSL 语句,实现精确查询、范围查询、布尔组合查询以及聚合分析。

配套的练习资料是检验学习成果的关键。课程中提供的文档 CRUD 与批量操作案例,应结合 Kibana 的 Dev Tools 进行手工演练,务必亲自执行每一条 DSL 语句,观察响应体中的 hits 与 _shards 信息,从而验证你对分片机制的理解。对于 Logstash 的数据导入部分,建议构造包含不同格式(如 JSON、CSV)的测试数据集,模拟真实的日志清洗流程。通过这种“概念讲解——环境搭建——API 实操——结果验证”的闭环训练,你将把零散的知识点转化为解决线上搜索引擎性能优化问题的实际工程能力。

课程目录

未分组

  1. 01 _ 课程介绍
  2. 02 _ 内容综述及学习建议
  3. 03 _ Elasticsearch简介及其发展历史
  4. 04 __Elastic Stack家族成员及其应用场景
  5. 05 _ _Elasticsearch的安装与简单配置
  6. 06 _ _Kibana的安装与界面快速浏览
  7. 07 _ _在Docker容器中运行Elasticsearch Kibana和Cerebro
  8. 08 _ _Logstash安装与导入数据
  9. 09 _ _基本概念:索引、文档和REST API
  10. 10 __基本概念:节点、集群、分片及副本
  11. 11 _ _文档的基本CRUD与批量操作
  12. 12 _ 倒排索引介绍
  13. 13 _ 通过Analyzer进行分词
  14. 14 _ Search API概览
  15. 15 _ URI Search详解
  16. 16 _ Request Body与Query DSL简介
  17. 17 _ Query String&Simple Query String查询
  18. 18 _ Dynamic Mapping和常见字段类型
  19. 19 _ 显式Mapping设置与常见参数介绍
  20. 20 _ 多字段特性及Mapping中配置自定义Analyzer
  21. 21 _ Index Template和Dynamic Template
  22. 22 _ Elasticsearch聚合分析简介
  23. 23 _ 第一部分总结
  24. 24 _ 基于词项和基于全文的搜索
  25. 25 _ 结构化搜索
  26. 26 _ 搜索的相关性算分
  27. 27 _ Query&Filtering与多字符串多字段查询
  28. 28 _ 单字符串多字段查询:Dis Max Query
  29. 29 _ 单字符串多字段查询:Multi Match
  30. 30 _ 多语言及中文分词与检索
  31. 31 _ Space Jam,一次全文搜索的实例
  32. 32 _ 使用Search Template和Index Alias查询
  33. 33 _ 综合排序:Function Score Query优化算分
  34. 34 _ Term&Phrase Suggester
  35. 35 _ 自动补全与基于上下文的提示
  36. 36 _ 配置跨集群搜索
  37. 37 _ 集群分布式模型及选主与脑裂问题
  38. 38 _ 分片与集群的故障转移
  39. 39 _ 文档分布式存储
  40. 40 _ 分片及其生命周期
  41. 41 _ 剖析分布式查询及相关性算分
  42. 42 _ 排序及Doc Values&Fielddata
  43. 43 _ 分页与遍历:From, Size, Search After & Scroll API
  44. 44 _ 处理并发读写操作
  45. 45 _ Bucket & Metric聚合分析及嵌套聚合
  46. 46 _ Pipeline聚合分析
  47. 47 _ 作用范围与排序
  48. 48 _ 聚合分析的原理及精准度问题
  49. 49 _ 对象及Nested对象
  50. 50 _ 文档的父子关系
  51. 51 _ Update By Query & Reindex API
  52. 52 _ Ingest Pipeline & Painless Script
  53. 53 _ Elasticsearch数据建模实例
  54. 54 _ Elasticsearch数据建模最佳实践
  55. 55 _ 第二部分总结回顾
  56. 56 _ 集群身份认证与用户鉴权
  57. 57 _ 集群内部安全通信
  58. 58 _ 集群与外部间的安全通信
  59. 59 _ 常见的集群部署方式
  60. 60 _ Hot & Warm架构与Shard Filtering
  61. 61 _ 分片设计及管理
  62. 62 _ 如何对集群进行容量规划
  63. 63 _ 在私有云上管理Elasticsearch集群的一些方法
  64. 64 _ 在公有云上管理与部署Elasticsearch集群
  65. 65 _ 生产环境常用配置与上线清单
  66. 66 _ 监控Elasticsearch集群
  67. 67 _ 诊断集群的潜在问题
  68. 68 _ 解决集群Yellow与Red的问题
  69. 69 _ 提升集群写性能
  70. 70 _ 提升集群读性能
  71. 71 _ 集群压力测试
  72. 72 _ 段合并优化及注意事项
  73. 73 _ 缓存及使用Breaker限制内存使用
  74. 74 _ 一些运维的相关建议
  75. 75 _ 使用Shrink与Rollover API有效管理时间序列索引
  76. 76 _ 索引全生命周期管理及工具介绍
  77. 77 _ Logstash入门及架构介绍
  78. 78 _ 利用JDBC插件导入数据到Elasticsearch
  79. 79 _ Beats介绍
  80. 80 _ 使用Index Pattern配置数据
  81. 81 _ 使用Kibana Discover探索数据
  82. 82 _ 基本可视化组件介绍
  83. 83 _ 构建Dashboard
  84. 84 _ 用Monitoring和Alerting监控Elasticsearch集群
  85. 85 _ 用APM进行程序性能监控
  86. 86 _ 用机器学习实现时序数据的异常检测(上)
  87. 87 _ 用机器学习实现时序数据的异常检测(下)
  88. 88 _ 用ELK进行日志管理
  89. 89 _ 用Canvas做数据演示
  90. 90 _ 项目需求分析及架构设计
  91. 91 _ 将电影数据导入Elasticsearch
  92. 92 _ 搭建你的电影搜索服务
  93. 93 _ 需求分析及架构设计
  94. 94 _ 数据Extract & Enrichment
  95. 95 _ 构建Insights Dashboard
  96. 96 _ Elastic认证介绍
  97. 97 _ 考点梳理
  98. 98 _ 集群数据备份
  99. 99 _ 基于Java和Elasticseach构建应用
  100. 100 _ 结课测试&结束语