我建议 Elasticsearch 为第一优先级。需要掌握的内容如下。

(1)掌握 Elasticsearch 的基本概念,主要包括:

  • 索引(index)
  • 类型(type)
  • 映射(mapping)
  • 文档(document)
  • 倒排索引原理
  • 文档打分机制
  • 集群(cluster)——单节点、集群安装与部署
  • 健康状态(red/yellow/green)
  • 数据存储
  • 数据类型(long/date/text、keyword/nested等)
  • 数据展示(结合Head插件的基础可视化)
  • ……

(2)掌握 Elasitcsearch 的基本操作,主要包括:

  • 新增(insert)
  • 删除(delete/deletebyquery)
  • 修改(update/updatebyquery)
  • 查找(search)
  • 精确匹配检索(term、terms、range、exists)
  • 模糊匹配检索(wildcard、prefix、negix正则)
  • 分词全文检索(match/match_phrase等)
  • 多条件 bool 检索(must/must_not/should多重组合)
  • 分词(英文分词、拼音分词、中文分词)
  • 高亮
  • 分页查询
  • 指定关键词返回
  • 批量操作 bulk
  • scroll 查询
  • reindex 操作
  • ……

(3)掌握 Elasticsearch 高级操作,主要包括:

  • 聚合统计(数量聚合、最大值、最小值、平均值、求和等聚合操作)
  • 图像化展示(hisgram 按照日期等聚合)
  • 聚合后分页
  • 父子文档
  • 数组类型
  • nested 嵌套类型
  • ES 插件错误排查(集群问题、检索问题、性能问题)
  • ES 性能调优(配置调优、集群调优等)
  • ……

(4)掌握 Elasticsearch Java/Python 等API,主要包括:

  • Elasticsearch 原生自带 API、JEST、Springboot 等 API 选型
  • Elasticsearch 多条件 bool 复杂检索 API
  • Elasticsearch 分页 API
  • Elasticsearch 高亮 API
  • Elasticsearch 聚合 API
  • Elasticsearch 相关 JSON 数据解析
  • ……

(5)Elasticsearch 结合场景开发实战,主要包括:

  • 数据可视化(Kibana、Grafana 等 其中 Grafana 比较适合监控类场景)
  • 通过 logstash/beats 等导入数据
  • Elasticsearch 和 Kafka 结合的应用场景
  • Elasticsearch 和 Mongo 结合的应用场景
  • Elasticsearch 和 Hadoop 结合的应用场景
  • 结合业务需求的定制化应用场景(日志分析、文档检索、全文检索、金融等各行业检索)
  • ……

建议的第二学习优先级为 Kibana。需要掌握的内容如下。

  • Kibana 安装与部署
  • ES 节点数据同步到 Kibana
  • Kibana Dev Tools 开发工具熟练使用
  • Kibana 图像化组合展示
  • 将 Kibana 图像化展示效果图应用到自己的开发环境中
  • ……

第三学习优先级为 Logstash。需要掌握的内容如下。

  • Logstash 的安装与部署
  • Logstash 将本地文件导入 ES
  • logstashinputjdbc 插件(5.X后无需安装)将 MySQL/Oracle 等关系型数据库数据导入 ES,全量导入和增量导入实现。
  • logstashinputmongo插件将 Mongo 数据导入 ES
  • logstashinputkafaka 插件将 Kafak 数据导入 ES
  • logstashoutput* 插件将 ES 数据导入不同的数据库和实时数据流中
  • ……

第四学习优先级为 Beats。需要掌握的内容如下。

  • 不同类型的 Beats 安装与部署
  • 将业务数据通过 Beats 导入 ES
  • ……