跳到主要内容

Elasticsearch 知识体系概览

Elasticsearch 是什么

Elasticsearch 是基于 Apache Lucene分布式搜索和分析引擎。它提供了近实时(Near Real-Time, NRT)的全文搜索、结构化搜索、分析和聚合能力,是目前最主流的搜索引擎解决方案。

核心特点

特性说明
倒排索引基于 Lucene 的倒排索引,全文搜索极快
分布式自动分片和副本,水平扩展
近实时文档索引后约 1 秒可搜索(refresh_interval)
RESTful API所有操作通过 HTTP JSON 接口
Schema 灵活支持动态映射,也可精确定义 Mapping
丰富聚合桶聚合、度量聚合、管道聚合

Elasticsearch vs 关系型数据库概念映射

关系型Elasticsearch说明
DatabaseIndex索引(类似数据库)
TableType(7.x 废弃)8.x 起一个 Index = 一个 Type
RowDocument文档
ColumnField字段
SchemaMapping映射(字段类型定义)
SQLQuery DSLJSON 查询语言
Index倒排索引(自动)所有字段默认建倒排索引

为什么面试要考 Elasticsearch

  1. 搜索核心:几乎所有有搜索功能的系统都使用 ES(电商、日志、内容平台)
  2. 倒排索引:理解倒排索引是理解搜索引擎原理的基础
  3. 分布式概念:分片、副本、一致性等概念在 ES 中有典型实现
  4. 与关系型互补:ES 通常和 MySQL/PostgreSQL 配合使用,理解它们的分工很重要

知识体系总览

核心知识点

1. 倒排索引

倒排索引是 ES 高效全文搜索的基石。关系型数据库的 B+ 树索引适合精确匹配,倒排索引适合「包含某个词」的查询。

2. Mapping 与分词

Mapping 定义了文档的字段类型和分词方式,是控制搜索行为的关键。分词器(Analyzer)将文本拆分为词项(Term),决定了搜索粒度。

3. Query DSL

ES 的查询语言是 JSON 格式的 DSL,分为全文查询(模糊匹配)和精确查询(精确匹配),通过 bool 查询组合复杂条件。

4. 聚合分析

ES 的聚合框架可以在搜索结果上做实时统计分析,替代部分数据仓库的功能(如日志分析、指标统计)。

5. 集群架构

ES 的分片和副本机制提供了水平扩展和高可用能力。理解写入流程、搜索流程和分片分配策略是优化的基础。

6. ELK 生态

ES 通常与 Logstash(数据管道)、Kibana(可视化)、Beats(轻量采集器)组成 ELK Stack,构建完整的日志和搜索平台。

面试重点与高频考点

面试核心
  1. 倒排索引原理:正排 vs 倒排,TF-IDF / BM25 相关性算分
  2. 分词器:Standard、IK 中文分词、自定义分词
  3. Query DSL:match vs term、bool 查询、过滤 vs 查询
  4. 写入与搜索流程:refresh、flush、translog、segment merge
  5. 分片策略:分片数选择、路由、rebalance
  6. ES vs 关系型数据库:各自适用场景,数据同步方案

学习路径建议

相关链接