elasticsearch
elasticsearch
的核心概念:
的核心概念:
(
(
1
1
)
)
Cluster
Cluster
:集群,包含多个节点,每个节点属于哪个集群是通过一个配置(集群名称,默认是
:集群,包含多个节点,每个节点属于哪个集群是通过一个配置(集群名称,默认是
elasticsearch
elasticsearch
)来决定的,对于中小型应用来说,刚开始一个集群就一个节点很正常
)来决定的,对于中小型应用来说,刚开始一个集群就一个节点很正常
(
(
2
2
)
)
Node
Node
:节点,集群中的一个节点,节点也有一个名称(默认是随机分配的),节点名称很重要
:节点,集群中的一个节点,节点也有一个名称(默认是随机分配的),节点名称很重要
“(在执行运维管理操作的时候),默认节点会去加入一个名称为
“(在执行运维管理操作的时候),默认节点会去加入一个名称为
elasticsearch”
elasticsearch”
的集群,如果直接启动
的集群,如果直接启动
一堆节点,那么它们会自动组成一个
一堆节点,那么它们会自动组成一个
elasticsearch
elasticsearch
集群,当然一个节点也可以组成一个
集群,当然一个节点也可以组成一个
elasticsearch
elasticsearch
集
集
群
群
(
(
3
3
)
)
Index
Index
:索引,包含一堆有相似结构的文档数据,比如可以有一个客户索引,商品分类索引,订单
:索引,包含一堆有相似结构的文档数据,比如可以有一个客户索引,商品分类索引,订单
索引,索引有一个名称。一个
索引,索引有一个名称。一个
index
index
包含很多
包含很多
document
document
,一个
,一个
index
index
就代表了一类类似的或者相同的
就代表了一类类似的或者相同的
document
document
。比如说建立一个
。比如说建立一个
product index
product index
,商品索引,里面可能就存放了所有的商品数据,所有的商
,商品索引,里面可能就存放了所有的商品数据,所有的商
品
品
document
document
。
。
(
(
4
4
)
)
Type
Type
:类型,每个索引里都可以有一个或多个
:类型,每个索引里都可以有一个或多个
type
type
,
,
type
type
是
是
index
index
中的一个逻辑数据分类,一
中的一个逻辑数据分类,一
个
个
type
type
下的
下的
document
document
,都有相同的
,都有相同的
field
field
,比如博客系统,有一个索引,可以定义用户数据
,比如博客系统,有一个索引,可以定义用户数据
type
type
,博
,博
客数据
客数据
type
type
,评论数据
,评论数据
type
type
。
。
(
(
5
5
)
)
Document&field
Document&field
:文档,
:文档,
es
es
中的最小数据单元,一个
中的最小数据单元,一个
document
document
可以是一条客户数据,一条商
可以是一条客户数据,一条商
品分类数据,一条订单数据,通常用
品分类数据,一条订单数据,通常用
JSON
JSON
数据结构表示,每个
数据结构表示,每个
index
index
下的
下的
type
type
中,都可以去存储多个
中,都可以去存储多个
document
document
。一个
。一个
document
document
里面有多个
里面有多个
field
field
,每个
,每个
field
field
就是一个数据字段。
就是一个数据字段。
(
(
6
6
)
)
shard
shard
(分片):单台机器无法存储大量数据,
(分片):单台机器无法存储大量数据,
es
es
可以将一个索引中的数据切分为多个
可以将一个索引中的数据切分为多个
shard
shard
,
,
分布在多台服务器上存储。有了
分布在多台服务器上存储。有了
shard
shard
就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台
就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台
服务器上去执行,提升吞吐量和性能。每个
服务器上去执行,提升吞吐量和性能。每个
shard
shard
都是一个
都是一个
lucene index
lucene index
。
。
(
(
7
7
)
)
replica
replica
(副本):任何一个服务器随时可能故障或宕机,此时
(副本):任何一个服务器随时可能故障或宕机,此时
shard
shard
可能就会丢失,因此可以为
可能就会丢失,因此可以为
每个
每个
shard
shard
创建多个
创建多个
replica
replica
副本。
副本。
replica
replica
可以在
可以在
shard
shard
故障时提供备用服务,保证数据不丢失,多个
故障时提供备用服务,保证数据不丢失,多个
replica
replica
还可以提升搜索操作的吞吐量和性能。
还可以提升搜索操作的吞吐量和性能。
primary shard
primary shard
(建立索引时一次设置,不能修改,默认
(建立索引时一次设置,不能修改,默认
5
5
个),
个),
replica shard
replica shard
(随时修改数量,默认
(随时修改数量,默认
1
1
个),默认每个索引
个),默认每个索引
10
10
个
个
shard
shard
,
,
5
5
个
个
primary
primary
shard
shard
,
,
5
5
个
个
replica shard
replica shard
,最小的高可用配置,是
,最小的高可用配置,是
2
2
台服务器。
台服务器。