es: 7.6.2
理解这篇文章
https://elasticstack.blog.youkuaiyun.com/article/details/99443042
https://www.cnblogs.com/kevingrace/p/10682264.html
记录一下 ,后面随时补充
cluster
Elasticsearch Cluster由一个或多个节点组成(cluster.name 必须相同),可通过其集群名称进行标识。
通常这个 Cluster 的名字是可以在 Elasticsearch里的配置文件中设置的。
$ vi config/elasticsearch.yml
# ---------------------------------- Cluster -----------------------------------
#
# Use a descriptive name for your cluster:
#
#cluster.name: my-application
#
node
单个Elasticsearch实例。 一个集群由一个或多个node组成。
在实际的部署中,为保证性能,还是需要一个服务器上运行一个node。
node.name 在集群里是唯一的
$ vi config/elasticsearch.yml
# ------------------------------------ Node ------------------------------------
#
# Use a descriptive name for the node:
#
#node.name: node-1
#
# Add custom attributes to the node:
#
#node.attr.rack: r1
#
# ----------------------------------- Paths ------------------------------------
#
# Path to directory where to store the data (separate multiple locations by comma):
#
#path.data: /path/to/data
#
# Path to log files:
#
#path.logs: /path/to/logs
#
根据node的作用,可以分为如下的几种:
master-eligible:可以作为主node。一旦成为主node,它可以管理整个cluster的设置及变化:创建,更新,删除index;添加或删除node;为node分配shard
data:数据node
ingest: 数据接入(比如 pipepline)
machine learning (Gold/Platinum License)
参数如下(4选1)
node.master: true/false
node.data: true/false
node.ingest: true/false
node.ml: true/false
如果node配置参数没有任何配置,那么这个node是作为一个Coordinating node。
在这种情况下,它可以接受外部的请求,并转发到相应的节点来处理。
index
在Elasticsearch中,索引是文档的集合,每个Index一个或许多的documents组成,并且这些document可以分布于不同的shard之中。
对应 关系型数据库里的数据库(database)。
type
类型是文档的逻辑容器,类似于表是行的容器。
在Elasticsearch 6.0以后,一个Index只能含有一个type。
在未来8.0的版本中,type将被彻底删除。
对应关系型数据库里的表(table)。
document
Elasticsearch是面向文档的,这点和 mongodb 很相似。
对应 关系型数据库里的行(row)。
shards
由于Elasticsearch是一个分布式搜索引擎,因此索引通常会拆分为分布在多个节点上的称为分片的元素。
Elasticsearch自动管理这些分片的排列。 它还根据需要重新平衡分片。
有两种类型的分片:primary shard 和 replica shard。
replica
默认情况下,Elasticsearch为每个索引创建一个主分片和一个副本。
这意味着每个索引将包含一个主分片,每个分片将具有一个副本。
分配多个分片和副本是分布式搜索功能设计的本质,提供高可用性和快速访问索引中的文档。
主副本和副本分片之间的主要区别在于只有主分片可以接受索引请求。
副本和主分片都可以提供查询请求。