【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 通过在后台进行数据和负载的自动分配来优化集群的性能和容量。

相关推荐
醉颜凉1 小时前
Elasticsearch核心架构:集群(Cluster)原理详解与核心作用
elasticsearch·架构·jenkins
yyxx4121231 小时前
钉钉专属版一年多少钱?2026最新价格
大数据·人工智能·物联网
Kari111 小时前
AgentOps 七大闭环 vs 传统 Agent 开发:腾讯云 ADP CSP 授权服务商 JOTO 解析生产级落地的本质差异
大数据·人工智能·腾讯云
醉颜凉1 小时前
Elasticsearch 深度原理:在保证数据一致性的前提下,如何安全更新倒排索引?
大数据·elasticsearch·搜索引擎
SelectDB1 小时前
Apache Doris 在内容 AI 生产链路中的实践:从内容打标到可追溯数据链路
大数据·agent·图片资源
RisunJan1 小时前
HarmonyOS 架构精读:从系统分层到应用模型
华为·架构·harmonyos
伟大的大威1 小时前
三台 DGX Spark 部署 DeepSeek V4 Flash NVFP4:从零到可用教程
大数据·分布式·spark
starzy19902 小时前
SparkStreaming 之 updateStateByKey 算子详解及代码实现
大数据·spark
爱吃面的猫2 小时前
大数据Hadoop之——集群环境搭建(了解)
大数据·hadoop·flume
故七月2 小时前
生成式引擎优化(GEO)的底层逻辑与产业实践
大数据·人工智能·机器学习