Node
节点:一个 ES 服务就是一个节点,节点中会存储数据
Cluster
集群:多个 es 节点(可以安装在一台服务器上,也可以安装在多台服务器上)组织在一起。
集群中的节点共同持有数据,共同提供搜索服务。
一个集群以集群的名字做为唯一标识。具有相同集群名称的节点才会组成一个集群。
集群的名字可以在 config/elasticsearch.yml
中配置
集群中的节点有三种状态:
- green :健康状态,所有的主分片,副本分片都可以正常工作
- yellow:警告状态,主分片都可以直接运行,但是至少有一个副本分片无法正常工作
- red: 集群无法正常工作。
在默认情况下,如果我们启动了多个节点,这些节点可以互相发现彼此,自动组成一个集群,但是这种方式不一定可靠,可能会造成多个master,也就是脑裂现象。所以在实际使用中,还是要手动指定下 master
Index
索引
做名词就是:具有相似特征文档的集合
做动词就是:对数据进行索引操作。
Type
类型:索引上的逻辑分类或者分区。类比于数据库中的表
es6之前:一个索引中可以有多个类型
es6.x:支持但是不建议单索引多类型
es7开始:一个索引只能有一个类型
Document
文档:一条可被索引的数据单元,是一段 JSON 格式的数据
Shards
分片:索引存储在节点上,受限于节点的空间大小和数据处理能力,单个节点的处理效果可能不理想,所以需要对索引进行分片,每个分片本身也是一个功能完善并且独立的索引。
Replicas
副本:备份。
默认情况下,一个索引会自动创建一个分片,然后为每一个分片创建一个副本。
主分片和其对应的副本不会在同一个节点内,这样的话,就算集群中某个节点挂掉了,数据也不至于丢失。
Settings
集群中对索引的定义信息,包括索引的分片数,副本数等。
Mapping
Mappering 保存了定义索引字段的存储类型,分词方式,是否存储等信息。