Elasticsearch(ES)是基于 Lucene 的开源分布式搜索分析引擎。核心能力:毫秒级全文检索、海量日志分析、实时统计。与 MySQL 互补而非替代——MySQL 管事务存储,ES 管搜索分析。

核心定位

  • 倒排索引 是搜得快的根本:把文档拆词后建立”关键词 → 文档”映射,避免全表扫描
  • 分布式 天生支持:数据自动分片,多节点协同存储与查询
  • JSON 文档化:所有数据以 JSON 存储,schema 灵活

核心概念

ES 概念类比 MySQL说明
Index数据库一类相关数据集合(如 productslogs
Document一行JSON 格式的单条记录
Node一台 ES 服务器单台是单节点,多台组成集群
Shard数据分片索引拆成多份分布在不同节点
Replica数据副本提供高可用与读吞吐

三大典型场景

场景优势例子
全文检索模糊匹配、关键词高亮,比 LIKE 快 10×商品搜索、文章搜索
日志分析写入吞吐高、按时间+关键词秒级定位ELK / EFK 日志栈
实时统计写入 1 秒内可被检索直播弹幕词云、销量排行

与 MySQL 的分工

维度MySQLES
强项事务、精确查询、强一致全文检索、聚合分析、实时统计
弱项全文检索性能差不支持事务,不能做主存储
配合方式业务主存储通过 binlog/CDC 同步到 ES 提供搜索

入门建议

  • 单节点足够入门,不要一上来就部署集群
  • 熟悉 REST API 与查询 DSL 比研究底层原理更优先
  • ES 不是数据库:核心业务数据始终先写入 MySQL/PG,再同步到 ES
  • 写入端用 Logstash / Filebeat / Fluentd / Flink CDC,根据数据形态选择