Elasticsearch
你可能会说
搜索框一输就卡,SQL 的 LIKE 根本不行?
基于 Lucene 的搜索与分析引擎倒排索引做全文检索、聚合分析、日志检索;近实时(默认 1 秒刷新),写入重,不适合当主数据库。
也常被叫作ES全文检索ELK
什么时候选它
- 站内搜索、商品筛选、日志检索(ELK)
- 需要相关性排序、分词、聚合统计
- 数据能从主库同步重建
什么时候别选
- 事务型主数据(用关系库)
- 写入后必须立刻读到(它是近实时)
- 小数据量、简单前缀匹配(数据库索引就够)
容易混在一起 · 怎么分
Elasticsearch≠ClickHouse
ES 强在全文检索和日志;ClickHouse 强在大宽表聚合分析,两者常一起用。
Elasticsearch≠MySQL
ES 是检索副本,不保证事务和实时;MySQL 是事实源,检索能力弱。
Q面试会问什么
- 问:为什么搜索快?
答:倒排索引 term → 文档列表,避免全表扫描;分片并行查询再归并。 - 问:和 MySQL 索引的区别?
答:倒排按词项组织,支持分词、相关性和聚合;代价是写入放大、存储翻倍。
延伸阅读 · 权威出处