Elasticsearch学习

要精通 Elasticsearch(ES),需要系统掌握其核心原理、索引机制、查询 DSL、分布式架构、性能调优、运维管理及与业务系统的集成。以下是完整的知识体系:


✅ 一、Elasticsearch 基础核心

  1. ES 是什么

    • 分布式搜索与分析引擎
    • 基于 Lucene,支持全文检索、结构化查询、聚合分析
  2. 核心概念

    • 索引(Index)、文档(Document)、字段(Field)
    • 节点(Node)、集群(Cluster)、分片(Shard)、副本(Replica)
  3. 数据类型与映射(Mapping)

    • 字段类型:text、keyword、date、long、nested、geo_point 等
    • 动态映射 vs 显式映射
    • 分词器(Analyzer)、字段属性(index、store、doc_values)

✅ 二、索引与数据管理

  1. 索引操作

    • 创建/删除索引、设置分片、副本数
    • 索引模板(Index Template)、动态模板
  2. 文档操作

    • 增删改查(CRUD)操作
    • 批量接口(Bulk API)
    • 乐观锁(_version)、部分更新(Update API)
  3. 倒排索引原理

    • Token、Term、Posting List
    • 分词流程:字符过滤器 → 分词器 → 词元过滤器

✅ 三、查询与分析(DSL)

  1. 查询 DSL 基础

    • matchtermrangeboolmulti_matchexists
    • 查询与过滤的区别(query vs filter)
  2. 聚合分析(Aggregation)

    • Bucket 聚合:terms、range、histogram、date_histogram
    • Metric 聚合:avg、sum、max、min、cardinality
    • 嵌套聚合与子聚合
  3. 全文检索原理

    • 分词、相关性评分(TF-IDF、BM25)
    • 高亮(Highlight)、模糊查询、通配符查询、正则查询

✅ 四、分布式架构与原理

  1. 分片机制
  • 主分片、副本分片
  • 分片路由机制、文档定位 hash 算法
  1. 集群架构与角色
  • Master 节点、Data 节点、协调节点、Ingest 节点
  • 节点发现与主节点选举流程
  1. 写入与查询流程
  • 写入数据的分发、主副本同步机制
  • 查询请求的分发、合并结果流程

✅ 五、性能优化与调优

  1. 写入优化
  • 批量写入、刷新控制(refresh_interval)
  • 合并策略(merge policy)、translog 管理
  1. 查询优化
  • filter 缓存、字段裁剪、分页优化(search_after)
  • 使用 doc_values、避免 script 查询
  1. 索引优化
  • Mapping 精简、关闭不必要的字段索引
  • 合理设置分片数、避免小索引过多
  1. 集群调优
  • JVM 参数、内存(heap size)、线程池配置
  • 节点负载均衡、冷热分离、索引生命周期管理(ILM)

✅ 六、集成与扩展能力

  1. 与业务系统集成
  • 与 Spring Boot 集成(Spring Data Elasticsearch)
  • 与 Logstash、Beats、Kafka、Flink 等数据管道对接
  • 实现日志采集、监控分析、搜索服务
  1. 常用插件与工具
  • Kibana(可视化)、Head 插件、Cerebro、ElasticHQ
  • 分词插件(IK Analyzer)、SQL 插件、Alerting 插件
  1. 安全与权限控制(X-Pack)
  • 用户认证、角色权限、索引级/字段级权限
  • HTTPS、API Key、审计日志

✅ 七、运维与故障处理

  1. 集群健康监控
  • 节点状态、分片分布、集群状态(green/yellow/red)
  • 使用 _cat_cluster API 监控
  1. 常见故障排查
  • 分片丢失、主节点选举失败、JVM GC 问题
  • 查询慢、写入阻塞、磁盘空间不足
  1. 数据备份与恢复
  • 快照与恢复(Snapshot & Restore)
  • 支持本地、S3、HDFS 等存储

🎯 总结:

精通 Elasticsearch = 核心原理 + 查询分析 + 索引机制 + 分布式架构 + 性能调优 + 实战经验