目录
- 1. 基于 Apache Lucene 构建
- 2. 分布式架构
- 3. 文档模型与动态映射
- 4. 强大的查询与聚合功能
- 5. 实时性与近实时性
- 6. 高可用性与故障恢复
- 7. 扩展性与管理工具
1. 基于 Apache Lucene 构建
核心技术点:全文索引、倒排索引
Elasticsearch 是建立在 Apache Lucene 之上的一款搜索引擎。Lucene 是一个高效的、开源的全文检索库,提供了强大的文本分析、索引和查询能力。Elasticsearch 将 Lucene 的复杂性封装起来,提供了友好的 RESTful API 和分布式管理机制。Lucene 的核心技术包括:
-
全文索引:对文本数据进行分词、标准化、过滤等预处理后,将处理后的词汇(term)存储进索引中,使得用户可以针对这些词汇进行高效查询。
-
倒排索引(Inverted Index):Elasticsearch 的核心数据结构。对于每个文档,倒排索引记录了文档中出现的所有词汇及其在文档中的位置信息。查询时,系统根据查询词汇直接查找包含这些词汇的文档列表,而不是遍历每个文档来查找匹配项,极大地提高了搜索效率。
2. 分布式架构
核心技术点:节点、集群、分片与副本
Elasticsearch 设计为分布式系统,能够轻松应对大规模数据和高并发查询需求:
-
节点(Node):单个 Elasticsearch 实例称为一个节点。每个节点都有唯一的标识(node ID),可以存储数据、参与数据索引和查询处理。