说明 参考文档:

集群(cluster)

一个Elasticsearch集群由一个或多个ES节点组成,所有节点共同存储数据,并提供跨集群内所有节点的联合索引和搜索能力。一个集群被命名为唯一的名字(默认为elasticsearch),集群名称非常重要,因为节点需要通过集群的名称加入集群。

您需要确保在不同的环境使用不同的集群名称,否则会导致节点添加到错误的集群中。

只有一个节点的集群是有效的。

节点(node)

一个节点是集群中的一个服务器,用来存储数据并参与集群的索引和搜索。和集群类似,节点由一个名称来标识,默认情况下,该名称是在节点启动时分配给节点的随机通用唯一标识符(UUID)。您也可以自定义任意节点的名称,节点名称对于管理工作很重要,因为通过节点名称可以确定网络中的哪些服务器对应于Elasticsearch集群中的哪些节点。

一个节点可以被添加到指定名称的集群中。默认情况下,每个节点会被设置加入到名称为elasticsearch的集群中,这意味着,如果在您在网络中启动了某些节点(假设这些节点可以发现彼此),他们会自动形成并加入名称为elasticsearch的集群中。

一个集群可以拥有任意多的节点。此外,如果在您的网络中没有运行任何Elasticsearch节点,此时启动一个节点会创建一个名称为easticsearch的单节点集群。

索引(index)

一个索引是一个拥有一些相似特征的文档的集合(相当于关系型数据库中的一个数据库)。比如,您可以拥有一个客户数据的索引,一个商品目录的索引,以及一个订单数据的索引。一个索引通常使用一个名称(所有字母必须小写)来标识,当针对这个索引的文档执行索引、搜索、更新和删除操作的时候,这个名称被用来指向索引。

类型(type)

一个类型通常是一个索引的一个逻辑分类/分区,允许在一个索引下存储不同类型的文档(相当于关系型数据库中的一张表)。比如用户类型,博客类型等,现在已经不支持在一个索引下创建多个类型,并且类型概念已经在后续版本中删除,详细请参考Elasticsearch官方文档

文档(document)

一个文档是可以被索引的基本信息单元(相当于关系型数据库中的一行数据)。比如,您可以为一个客户创建一个文档,或者为一个商品创建一个文档。文档可以用JSON格式来表示。在一个索引中,您可以存储任意多的文档,且文档必须被索引。

分片(shards)

代表索引分片,Elasticsearch可以把一个完整的索引分成多个分片,这样的好处是可以把一个大的索引拆分成多个,分布到不同的节点上,构成分布式搜索。分片的数量只能在索引创建前指定,并且索引创建后不能更改。

副本(replicas)

代表索引副本,Elasticsearch可以设置多个索引的副本,副本的作用一是提高系统的容错性,当某个节点某个分片损坏或丢失时可以从副本中恢复。二是提高Elasticsearch的查询效率,Elasticsearch会自动对搜索请求进行负载均衡。

recovery

代表数据恢复或叫数据重新分布,Elasticsearch在有节点加入或退出时会根据机器的负载对索引分片进行重新分配,挂掉的节点重新启动时也会进行数据恢复。

gateway

代表Elasticsearch索引快照的存储方式,Elasticsearch默认是先把索引存放到内存中,当内存满了时再持久化到本地硬盘。gateway对索引快照进行存储,当这个Elasticsearch集群关闭再重新启动时就会从gateway中读取索引备份数据。Elasticsearch支持多种类型的gateway,有本地文件系统(默认)、分布式文件系统、Hadoop的HDFS和阿里云的OSS云存储服务。

discovery.zen

代表Elasticsearch的自动发现节点机制,Elasticsearch是一个基于p2p的系统,它先通过广播寻找存在的节点,再通过多播协议来进行节点之间的通信,同时也支持点对点的交互。

Transport

代表Elasticsearch内部节点或集群与客户端的交互方式,默认内部是使用TCP协议进行交互,同时它支持http协议(JSON格式)、thrift、servlet、memcached、zeroMQ等的传输协议(通过插件方式集成)。