Elasticsearch是一种分布式搜索引擎,基于Apache Lucene构建,支持全文搜索、结构化搜索、分析和实时数据处理。
节点(Node)
节点是集群中的一台服务器。根据节点的角色,可以分为以下几种类型:
-
主节点(Master Node):负责集群的管理任务,如创建和删除索引、跟踪节点的加入和离开等。主节点是核心的管理节点,通常推荐相对较少的节点担任这一角色。
-
数据节点(Data Node):用于存储数据并执行与数据相关的操作(如搜索、聚合和索引)。大多数情况下,数据节点是集群中最重要的节点,因为它们会处理大多数请求。
-
协调节点(Coordinating Node):负责将请求路由到适当的节点,并将结果聚合返回给客户。协调节点本身不存储任何数据。
-
热备份节点(Replica Node):不用于主数据存储,而是为主节点分片提供备份。若主节点出现故障,副本将自动替代其功能,保证高可用性。
索引(Index)
索引是存储文档的地方,可以视为一个数据库。每个索引都有一个唯一的名称,用于在搜索时引用。索引中的数据通常以JSON格式存储,并可以通过REST API进行操作。
文档(Document)
文档是Elasticsearch中存储的基本信息单元,通常与数据库中的一行相对应。每个文档都有一个唯一的ID,且以JSON格式存储。文档包含多个字段,这些字段提供了文档的元数据或内容。
类型(Type)
在Elasticsearch 6.x及之前的版本中,类型用于表示一个索引中不同类别的文档。比如,一个用户索引可以包含“用户”和“管理员”类型。然而,从Elasticsearch 7.x版本开始,类型的支持逐渐被取消,每个索引现在应只包含一个类型。
分片(Shard)
分片是索引存储的基本单位。Elasticsearch使用分片来将数据均匀分布到集群中的不同节点上,从而提高处理性能和可扩展性。每个索引可以有多个主分片(primary shard)和副本分片(replica shard)。主分片存储数据,副本分片用于提供数据冗余和负载均衡。
分片副本(Replica Shard)
副本是主分片的副本。Elasticsearch会根据配置为主分片创建副本段,以便在主分片出现故障时,副本可以继续提供服务。此外,副本还用于承担查询负载,提高搜索性能。