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

相关推荐
Yvonne9781 小时前
创建三个节点
java·大数据
OJAC近屿智能5 小时前
苹果新品今日发布,AI手机市场竞争加剧,近屿智能专注AI人才培养
大数据·人工智能·ai·智能手机·aigc·近屿智能
车载诊断技术5 小时前
电子电气架构 --- 电子电器新技术及发展趋势
网络·架构·汽车·电子电器框架·车载充电器(obc)·电子电器新技术及发展趋势
lucky_syq5 小时前
Spark算子:大数据处理的魔法棒
大数据·分布式·spark
呱牛do it5 小时前
【系列专栏】银行IT的云原生架构-混合云弹性架构 13
微服务·云原生·金融·架构
uhakadotcom6 小时前
约束求解领域的最新研究进展
人工智能·面试·架构
m0_748233648 小时前
【分布式】Hadoop完全分布式的搭建(零基础)
大数据·hadoop·分布式
圣享科技SMARTLIC8 小时前
企业软件合规性管理:构建高效、安全的软件资产生态
大数据·安全·浮动许可证监控·许可证管理·浮动许可证优化·软件资产管理·浮动许可证管理
京东零售技术8 小时前
京东广告基于 Apache Doris 的冷热数据分层实践
大数据
D愿你归来仍是少年8 小时前
解决Python升级导致PySpark任务异常方案
大数据·开发语言·python·spark