集群(Cluster)
: 由一个或多个拥有相同 cluster.name 配置的**节点(Node)
**组成节点(Node)
: 一个单独的 Elasticsearch实例,一个节点可以存储多个分片(Shard)
- 节点有不同的类型,主要分为
主节点(Master)
和数据节点(Data Node)
- 主节点集群唯一,主要负责管理集群变更、元数据的更改,例如增加、删除索引,或者增加、删除节点等。
- 数据节点负责保存数据,执行数据相关的操作,如数据的增删改查,聚合等。
- 节点有不同的类型,主要分为
分片(Shard)
: 一个分片是一个Lecene实例,是一个功能完整的搜索引擎- 分片有两种类型,
主分片(primary shard)
和副分片(replica shard)
,在写入的过程中,先写主分片,成功后并发写副分片。 - 主分片的数目在索引创建时就已经确定了下来
- 分片有两种类型,
索引(Index)
:类似于数据库中的表, 一个 Elasticsearch 集群可以包含多个索引 ,应用程序直接与索引进行交互,一个索引可以包含一个或多个分片。Mapping
:定义索引中包含的字段和其属性的方式,类似于关系型数据库中的表结构。文档(Document
):索引中的基本单位。每个文档都是一个JSON格式的文本,其中包含用于描述文档内容的字段。文档被存储和索引到分片内.字段(Field)
:文档中的一个具体信息单元,比如一个字符串或一个数字。它们可以是具有不同数据类型的原始数据,比如字符串、日期、数字等。词项(Term)
:是被索引的文档中的单个单词或短语。例如,text类型的字段能够进行分词,分词后得到的词语就是词项
在Elasticsearch中,节点类型可以分为以下几类:
- 数据节点(Data Node):存储数据的节点,负责管理索引和文档数据。数据节点通过分片机制将数据分散存储在不同节点上,以实现水平扩展。
- 主节点(Master Node):负责管理整个集群的元数据信息,包括索引的创建、删除、分配、节点的加入和离开等操作。主节点不存储数据,仅负责协调和管理集群中的其他节点。
- 协调节点(Coordinator Node):负责协调集群中的请求和查询操作,包括路由请求、分发任务、合并结果等操作。协调节点不存储数据,只负责协调和管理集群中的其他节点。
- 客户端节点(Client Node):仅用于处理客户端请求,不存储数据,也不参与集群管理。客户端节点可以向集群中的任何节点发送请求,并将结果返回给客户端。
在实际使用中,一个节点可以同时扮演多种角色,例如一个节点可以既是数据节点又是主节点。节点类型的选择取决于集群的规模和需求,以及节点的硬件配置和资源使用情况。