- Cluster(集群)
>   集群是一个或多个节点(服务器)的集合,这些节点一起保存整个数据,并在所有节点上提供联合索引和搜索功能。
  一个运行中的 Elasticsearch 实例称为一个 节点,而集群是由一个或者多个拥有相同 cluster.name 配置的节点组成, 它们共同承担数据和负载的压力。当有节点加入集群中或者从集群中移除节点时,集群将会重新平均分布所有的数据。
   作为用户,我们可以将请求发送到 集群中的任何节点 ,包括主节点。 每个节点都知道任意文档所处的位置,并且能够将我们的请求直接转发到存储我们所需文档的节点。 无论我们将请求发送到哪个节点,它都能负责从各个包含我们所需文档的节点收集回数据,并将最终结果返回給客户端。 Elasticsearch 对这一切的管理都是透明的。
<center>
<img src="https://www.elastic.co/guide/cn/elasticsearch/guide/cn/images/elas_0201.png">
</center>
- Node(节点)
> 节点是集群的一部分、存储数据并参与集群的索引和搜索功能的单个服务器。
<center>
<img src="https://www.elastic.co/guide/cn/elasticsearch/guide/cn/images/elas_0202.png">
</center>
- Index
> 索引是具有相似特性的文档集合。
- 类似于关系型数据库中"**库**"的概念
- Type
> Type是具有一组公共字段的文档定义类型
  例如,假设您运行一个博客平台并将所有数据存储在一个索引中。在该索引中,可以定义用户数据的类型、博客数据的另一种类型以及注释数据的另一种类型。
- 类似于关系型数据库中"**表**"的概念
- Document
> 被索引信息的基本单元。
- 类似于关系型数据库的一个记录(行)
- 会被压缩成json格式
- Shards & Replicas(分片&副本分片)
> 索引可以潜在地存储可以超过单个节点的硬件限制的大量数据。例如,占用1TB磁盘空间的十亿个文档的单个索引可能不适合单个节点的磁盘,或者可能太慢而无法单独为来自单个节点的搜索请求提供服务。
  分片的两个主要原因:
- 它允许您水平分割/缩放您的内容卷。
- 它允许你分配和并行操作的碎片(可能在多个节点上)从而提高性能/吞吐量
> 在网络/云环境中,在任何时候都可以预期到故障,在碎片/节点不知何故脱机或由于任何原因消失的情况下,非常有用,并且强烈建议使用故障转移机制。为此,Elasticsearch允许您将一个或多个索引碎片的副本复制到称为副本碎片(replica shards)或简称为副本(replica)中。
  复制是重要的两个主要原因:
- 在碎片/节点失败的情况下,它提供了高可用性。由于这个原因,需要注意的是,副本碎片永远不会分配到与原始/主碎片相同的节点上。
- 它允许您扩展搜索量/吞吐量,因为可以并行地在所有副本上执行搜索。
  添加故障转移
> 当集群中只有一个节点在运行时,意味着会有一个单点故障问题——没有冗余。 幸运的是,我们只需再启动一个节点即可防止数据丢失。
  拥有两个节点的集群——所有主分片和副本分片都已被分配。
<center>
<img src="https://www.elastic.co/guide/cn/elasticsearch/guide/cn/images/elas_0203.png">
</center>