Elasticsearch名词解释,手动翻译,欢迎指正
Cluser | 聚集
cluser 也称聚集,是由一个或者多个 node 组成的集合,保存了你所有的数据并且为所有节点提供索引及搜索的能力。cluser 的名称唯一。在聚集中,你可以有一个或者多个 node
Node | 节点
一个 node 是一个单个服务器,属于 cluser 的一部分,提供了索引及搜索的能力。和 cluser 一样, node 也是通过名字来确保唯一性的。当 node 启动时,会生成一个随机的字符作为 node 的名字。
node 可以通过配置进而加入到特定的 cluser 中。默认的话会被加入到 elasticsearch 这个 cluster。
Index | 索引
index 是一些列具有相同特性的文档的集合。类似于关系型数据库中的库。
举例说明,你可以为客户数据创建索引,可以为产品目录创建索引,也可以为其他任何数据创建索引。
需要注意的是,index name 必须为小写字母 ,通常索引的名称会用在索引数据,搜索,更新或者删除数据的地方。
Type | 类型
在一个索引中,你可以定义多个 type ,type 是索引中的逻辑分类。当然这个type的意义完全取决于你。
type 相当于关系型数据数据库中的表。
举例来说,在一个博客系统中,你可以定义一个 user type,可以定义一个 blog type,还可以定义一个 comment type。
Document | 文档
一个文档是可以被索引的最基本的单位。
文档相当于关系型数据库中的row,也就是一行行的数据。
例如一个用户可以是一个文档,一个产品可以是一个文档,一条订单记录可以是一个文档。
document 用当前很流行的 JSON 格式展示。
Shards & Replicas 碎片 & 副本
Shards 碎片
一个索引可能会存储大量的数据,进而会让单个节点超出硬件能承受范围。举例来说,存储了10亿文档的单个节点,会占用1TB磁盘空间,并且会导致查询的时候速度很慢。
为了解决这个问题,Elasticsearch 提供了 碎片 也就是 shards 对 index 进行划分成更小的部分。 当你创建 index 的时候,你可以简单地指定你想要的碎片数量。每一个碎片具有和 index 完全相同的功能。
碎片最主要的两个作用是:
- 它允许你水平地切割你的容量体积
- 它允许你并行地分发作业,提高系统的性能
Replicas 副本
因为各种原因,所以数据丢失等问题会时有发生,碎片也可能会丢失,为了防止这个问题,所以你可以将一个或多个索引碎片复制到所谓的复制碎片,简称为副本。
副本最主要的两个作用是:
它提供了高可用性,以防碎片/节点失败。之于这点,所以副本的永远不要和原始碎片分布在同一个节点上。
它可以扩展系统的吞吐量,因为搜索可以在所有副本执行。
总的来说,每个 index 可以被分布到不同的碎片中,节点 可以有0个或者多个副本。一旦复制了,那么 index 就拥有一个主要的碎片和一个复制的碎片。碎片的数量和副本的数量可以在创建索引之前定义,在索引创建之后,你可以动态地改变副本的数量,但是却不能改变碎片的数量。
默认情况下,Elasticsearch 为每个索引分配了5个主碎片和1个副本,这意味着在你的集群中,如果至少有两个节点,那么每个索引将有5个主碎片和5个复制碎片,总共10碎片/索引。