鲲鹏社区首页
中文
注册
开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

核心组件介绍

Elasticsearch的核心组件有节点、集群、分片和索引。本章节对核心组件概念进行介绍。

图1所示为Elasticsearch的核心组件示例图,其中节点分为主节点(Master node)和从节点(Slave node),P和R代表分片以及其副本分片。

图1 集群、节点与分片的示例图

节点(Node)

节点是Elasticsearch集群中的一个服务器,它负责存储数据和处理客户端请求。节点可以通过配置文件或启动参数设置角色,如主节点、数据节点、采集节点(Ingest)、协调节点等,节点类型说明如表1所示。通常来说,在一个集群中,有一个主节点多个从节点。

表1 节点类型说明

节点类型

说明

主节点

主节点是集群中的所有节点中选举产生的,负责管理集群范围内的所有变更,例如增加、删除索引,或者增加、删除节点等。

数据节点

数据节点负责储存数据和执行索引、搜索等操作。

采集节点

采集节点负责预处理文档,在它们被索引之前执行各种转换。

协调节点

协调节点不存储数据,不执行数据处理,也不参与集群管理。其主要功能是处理路由请求、汇聚结果以及减轻数据节点压力。

集群(Cluster)

集群是由一个或多个节点组成的,它们共同协作提供数据的存储和搜索服务。集群通过集群名称(cluster.name)来区分,同一个集群中的所有节点使用相同的集群名称,确保不同集群之间不会发生数据共享。集群节点共同承担数据存储和负载处理的压力,当有节点加入集群中或者从集群中移除节点时,集群将会重新平均分布所有的数据,保证每个节点负载均衡。

索引(Index)

表2 索引的基本概念说明

基本概念

说明

索引

是数据存储的逻辑单元(类似于数据库),是具有相似特征的文档集合。索引可以包含一个或多个类型。

类型

类型类似于数据库中的表。文档类型使得同一个索引中在存储结构不同的文档时,只需要依据文档类型就可以找到对应的参数映射信息,方便文档的存储。

文档

文档是可以被索引的基本单位,特指最顶层结构或根对象序列化成的JSON数据。文档相当于数据库中的行。一个类型可以包含多个文档。

字段

字段是组成文档的最小单位。相当于数据库中的列。每个文档包含多个字段。

分片(Shard)

分片是索引数据的子集,它可以将一个大的索引拆分成多个部分,分布在不同的节点上。每个分片是一个Lucene的实例。分片可以是主分片(Primary Shard)或副本分片(Replica Shard)。副本是分片的复制,可以提高数据的可用性和搜索性能。副本可以分布在不同的节点上,当主分片发生故障时,副本可以升级为主分片。