集群Cluster
集群由一个唯一的名字标识,默认为
Elasticsearch
。集群名称非常重要,具有相同集群名称的节点才会组成一个集群。集群名称可以在配置文件中指定。需要注意的是,Elasticsearch中一个节点也被称为集群。
节点Node
用于存储集群的数据,参与集群的索引和搜索功能。像集群有名字一样,节点也有自己的名字,默认在启动时会以一个随机的
UUID
的前7个字符作为节点的名字,用户可以为其指定任意的名字。多个节点通过同一个集群名在网络中发现同伴组成一个集群。一个节点也可以是集群。
索引Index
索引是一个文档数据的集合。每个索引都有唯一的名称,用户通过这个名称来操作它。一个集群中可以有任意多个索引。
类型[^6.0.0废弃]Type
在一个索引中,可以存放不同类型的文档,如用户数据、订单数据等。一个索引中只存放一类数据。
文档Document
用
JSON
格式来表示,存储在索引库中的一条数据。
分片Shard
在创建索引时可以指定分成多少个分片来存储。每个分片本身也是一个功能完善且独立的“索引”,可以被放置在集群的任意节点上,从而实现负载均衡。合理的分片数量可以提高
Elasticsearch
服务的性能。
复制Replication
一个分片可以有多个副本,以防止数据丢失和避免数据丢失后服务不可用。
Elasticsearch
比较关系型数据库(MySQL 、Oracle 等) |
Elasticsearch |
---|---|
数据库 | 索引 |
表 | 类型(6.0.0废弃) |
行 | 文档 |
列 | 字段 |
表结构 | 映射 |
在关系型数据库中,用户会创建数据库,这在Elasticsearch
中对应的是创建索引,俗称索引库。关系型数据库中的表在Elasticsearch
中已经没有对应的项。对于关系型数据库中的行,在Elasticsearch
中成为文档。而关系型数据库的列在Elasticsearch
中是由字段体现的,表结构使用映射体现。因此,Elasticsearch
的大体架构就是创建索引库,也可以给索引库指定映射和字段类型,在Elasticsearch
索引库中存储的基本单位就是文档数据。