本篇是对ES API的简单翻译,如有不准概不负责
集群(cluster)
- 集群是节点(nodes)的集合,都说集合了自然是集群中可以包含任意多个节点, 多个节点共同保存所有的数据并提供跨所有节点的联合索引和搜索功能。
- cluster有唯一的标识名(默认值是elasticsearch),节点只有设置集群名称才能加入集群。
节点(node)
- 节点是集群中一个单一的服务,节点的功能包括:存储数据,参与集群索引以及搜索。
- 默认情况下节点启动时会被随机分配一个全局唯一标识,就是节点的名字,当然可以自主命名节点的名字。
- 节点通过配置集群名字加入集群,默认情况下节点启动时都加入名称为elasticsearch的集群。
索引(index)
- 索引是文档(docuents)的集合,这些文档是要有一些相似属性的。例如,你可以定义顾客的index,也可以定义订单的index。
- 注意索引名称“必须”使用小写,当在文档中执行索引、搜索、更新和删除等操作时都需要使用index的名字。
- index类比关系型数据库中的数据库。
类型(type)
- 类型过去是索引的基本类别分区,允许你在一个索引中存储不同类型的文档,但现在已经不可以在索引中创建多个类型了,类型的概念将在以后的ES版本中被淘汰。
- type类比关系型数据库中的table
文档(document)
- 文档是被索引的基础单元信息,文档是以json格式呈现。
- document类比关系型数据库中的一行记录。
分片(shards)
- 单个索引可以存储大量的数据,理论上可以超过单个几点的硬盘限制,比如有10亿个文档占用1TB存储空间的单个索引并不适用于单个节点的硬盘,因为搜索会变慢。
- 为了解决1中的问题,ES提供将索引碎片化的能力,创建索引时可以定义分片的数量,每个分片都是一个功能齐全的独立索引,可以驻留在集群的任意节点上。
- 分片的好处:
- 允许水平分割内容;
- 允许跨分片分布并行操作,以此提高吞吐量。