【Elasticsearch架构介绍及原理解析】讲解

Elasticsearch架构介绍及原理解析

  • [1. 前言](#1. 前言)
  • [2. Elasticsearch 基本概念](#2. Elasticsearch 基本概念)
  • [3. Elasticsearch 工作原理](#3. Elasticsearch 工作原理)

1. 前言

Elasticsearch 是一个基于 Apache Lucene 构建的分布式、RESTful风格的搜索和分析引擎,它允许你存储、搜索和分析大量数据迅速且实时,Elasticsearch 通常用于日志分析、全文搜索等复杂的数据分析场景,下面是一个对 Elasticsearch 架构及其工作原理的简要介绍。

2. Elasticsearch 基本概念

  • 节点(Node):一个 Elasticsearch 实例,它是集群中的一个服务器。
  • 集群(Cluster):由一个或多个节点组成的集合,它们共同工作,共享数据和负载任务。
  • 索引(Index):类似于传统数据库中的"数据库",是一堆具有类似特性的文档集合。
  • 类型(Type):已经在 Elasticsearch 7.x 版本中被废弃,过去类似于传统数据库中的"表"。
  • 文档(Document):一个可以被索引的信息单元,类似于传统数据库中的"记录",Elasticsearch 中的文档是 JSON 格式的。
  • 分片(Shard):索引可以分为多个分片,每个分片是一个自包含的索引,分片可以进一步冗余存储在不同节点上来提供容错。
  • 副本(Replica):一个分片的拷贝,副本在分散读取负载和增加容错方面起着重要作用。

3. Elasticsearch 工作原理

1. 分布式文档存储

当文档进入 Elasticsearch 时,文档会被存储在一个索引中,为了能够横向扩展和提供高可用性,每个索引都可以被切分成多个分片。每个分片可以有零个或多个副本。

2. 分布式搜索架构

当一个搜索请求被发送到集群时,Elasticsearch 首先会确定这个请求需要哪些索引分片参与,请求会被发送到这些分片所在的节点。每个节点执行本地搜索,并将结果发回请求的发起节点,由它来汇总这些结果,并返回给客户端。

3. 实时性

Elasticsearch 通过一种称为近实时(NRT)搜索的方式实现实时搜索,文档被索引后并不会马上可以被搜索,而是有一个稍微的延迟(默认是 1 秒)。

4. Lucene 索引

Elasticsearch 在底层使用 Lucene 索引。Lucene 提供了高性能的搜索功能,一个 Elasticsearch 分片其实是一个 Lucene 索引。

5. 分析链

Elasticsearch 通过分析器(Analyzers)处理文本数据,将其转换为一个 token 流,再进行索引和搜索,分析链包括字符过滤(Character Filter)、分词器(Tokenizer)、以及token过滤(Token Filter)。

6. 映射(Mapping)

Mapping 类似于数据库的 schema,是定义文档并告知 Elasticsearch 如何理解这些文档的方式,可以指定字段的数据类型,如整数、浮点数、字符串、布尔值等。

7. 查询 DSL

Elasticsearch 有一套灵活的查询DSL(Domain Specific Language)来构建复杂的搜索查询,这套查询语言基于 JSON,支持全文搜索、结构化查询、复合查询等。

8. 集群协调

Elasticsearch 集群内部有一个选主机制来处理元数据的管理,其中一个节点会被选举为 master 节点,负责管理集群的配置变更等。

9. 水平扩展

可以通过简单地添加更多节点来扩展集群规模,Elasticsearch 通过在后台进行数据和负载的自动分配来优化集群的性能和容量。

相关推荐
重庆小透明6 分钟前
微服务,不仅仅是“小服务”
java·后端·spring cloud·微服务·云原生·架构
Nile6 分钟前
解密openclaw底层pi-mono架构系列一:4.pi-coding-agent
架构
开源能源管理系统14 分钟前
告别厂商锁定!MyEMS 开源架构如何重构能源管理体系
重构·架构·开源
ascarl201016 分钟前
canal和ES同步失败维护步骤
java·数据库·elasticsearch
TYFHVB1219 分钟前
2026六大主流CRM横评,五大核心维度深度解析
大数据·前端·数据结构·人工智能
武子康22 分钟前
大数据-245 离线数仓 - 电商分析 Hive 拉链表入门实战:缓慢变化维 SCD 类型、建表加载与常见错误速查
大数据·后端·apache hive
阿拉斯攀登23 分钟前
Transformer 架构拆解:Encoder 与 Decoder 的秘密
人工智能·深度学习·架构·大模型·llm·transformer
芝士爱知识a26 分钟前
2026年 AI 期权工具全维度测评与推荐榜单:AlphaGBM 领跑,量化交易新范式
大数据·人工智能·python·ai量化·alphagbm·ai期权工具·ai期权工具推荐
天远Date Lab27 分钟前
天远入职背调报告API对接实战:Python构建自动化背景调查中台
大数据·网络·python·自动化