Elasticsearch:基本概念

31 阅读3分钟

Untitled.png

  • 集群(Cluster): 由一个或多个拥有相同 cluster.name 配置的**节点(Node)**组成
  • 节点(Node): 一个单独的 Elasticsearch实例,一个节点可以存储多个分片(Shard)
    • 节点有不同的类型,主要分为主节点(Master)数据节点(Data Node)
    • 主节点集群唯一,主要负责管理集群变更、元数据的更改,例如增加、删除索引,或者增加、删除节点等。
    • 数据节点负责保存数据,执行数据相关的操作,如数据的增删改查,聚合等。

Untitled 1.png

  • 分片(Shard): 一个分片是一个Lecene实例,是一个功能完整的搜索引擎
    • 分片有两种类型,主分片(primary shard)副分片(replica shard),在写入的过程中,先写主分片,成功后并发写副分片。
    • 主分片的数目在索引创建时就已经确定了下来

Untitled 2.png

  • 索引(Index):类似于数据库中的表, 一个 Elasticsearch 集群可以包含多个索引 ,应用程序直接与索引进行交互,一个索引可以包含一个或多个分片。
  • Mapping:定义索引中包含的字段和其属性的方式,类似于关系型数据库中的表结构。
  • 文档(Document):索引中的基本单位。每个文档都是一个JSON格式的文本,其中包含用于描述文档内容的字段。文档被存储和索引到分片内.
  • 字段(Field):文档中的一个具体信息单元,比如一个字符串或一个数字。它们可以是具有不同数据类型的原始数据,比如字符串、日期、数字等。
  • 词项(Term):是被索引的文档中的单个单词或短语。例如,text类型的字段能够进行分词,分词后得到的词语就是词项

在Elasticsearch中,节点类型可以分为以下几类:

  1. 数据节点(Data Node):存储数据的节点,负责管理索引和文档数据。数据节点通过分片机制将数据分散存储在不同节点上,以实现水平扩展。
  2. 主节点(Master Node):负责管理整个集群的元数据信息,包括索引的创建、删除、分配、节点的加入和离开等操作。主节点不存储数据,仅负责协调和管理集群中的其他节点。
  3. 协调节点(Coordinator Node):负责协调集群中的请求和查询操作,包括路由请求、分发任务、合并结果等操作。协调节点不存储数据,只负责协调和管理集群中的其他节点。
  4. 客户端节点(Client Node):仅用于处理客户端请求,不存储数据,也不参与集群管理。客户端节点可以向集群中的任何节点发送请求,并将结果返回给客户端。

在实际使用中,一个节点可以同时扮演多种角色,例如一个节点可以既是数据节点又是主节点。节点类型的选择取决于集群的规模和需求,以及节点的硬件配置和资源使用情况。