Elasticsearch学习笔记(2)

前言

前面我们介绍了 Elasticsearch的一些特点及安装,这篇文章我们来看下 Elasticsearch的核心概念。

正文

Elasticsearch核心概念介绍

Elasticsearch十大核心概念

集群(cluster)

一个或者多个安装了 es 节点的服务器组织在一起,就是集群,这些节点共同持有数据,共同提供搜索服务。

一个集群有一个名字,这个名字是集群的唯一标识,该名字称为 cluster name ,默认的集群名称是 elasticsearch,具有相同名称的节点才会组成一个集群。

可以在 config/elasticsearch.yml 文件中配置集群名称:

1
cluster.name: sakuratears

在集群中,节点的状态有三种:绿色黄色红色

  • 绿色:节点运行状态为健康状态。所有的主分片(primary shards)、副本分片(replica shards)都可以正常工作。
  • 黄色:表示节点的运行状态为警告状态。所有的主分片都正常,至少有一个副本分片不能正常工作。
  • 红色:表示集群无法正常工作。表示至少有一个主分片及其全部副本分片不能正常工作,部分数据丢失。

节点(Node)

集群中的一个服务器就是一个节点,节点中会存储数据,同时参与集群的索引以及搜索功能,一个节点想要加入一个集群,只需要配置一下集群名称即可。默认情况下,如果我们启动了多个节点,多个节点还能够互相发现彼此,那么它们会自动组成一个集群,这是 es 默认提供的,但是这种方式并不可靠,有可能会发生脑裂现象。所以在实际使用中,建议一定要手动配置一下集群信息。

索引(Index)

索引可以从两方面来理解:

名词

具有相似特征文档的集合。

动词

索引数据以及对数据进行索引操作。

类型(Type)

类型是索引上的分类或分区。在 Elasticsearch 6.0 之前,一个索引中可以有多个类型,从 Elasticsearch 7.0 开始,一个索引中只能有一个类型。在 Elasticsearch 6.x 版本中,依然保持兼容,依然支持单 index 多个 type 结构,但是已经不建议这么使用。

文档(Document)

一个可以被索引的单元,例如一个用户的文档,一个产品的文档等等。文档都是 JSON 格式的。

分片(Shards)

索引都是存储在节点上的,但是受限于节点的空间大小以及数据处理能力,单个节点的处理效果可能不理想,此时我们可以对索引进行分片。当我们创建一个索引的时候,就需要指定分片的数量。每个分片本身也是一个功能完善并且独立的索引。

默认情况下,一个索引会自动创建 5 个分片,并且为每一个分片创建一个副本。

副本(Replicas)

副本也就是备份,是对主分片的一个备份。

主分片和副本都可以对外提供查询服务。当数据写入时,会先从主分片上完成数据索引,再分发到副本分片上。

当主分片不可用时,会从副本分片中选择一个成为主分片。

主分片和对应的副本分片是不会在同一个节点上的,所以副本分片数的最大值是 n -1(其中n为节点数)。

Settings

集群中对索引的定义信息,例如索引的分片数、副本数等等。

Mapping

Mapping 保存了定义索引字段的存储类型、分词方式、是否存储等信息。

Analyzer

字段分词方式的定义。

Elasticsearch VS 关系型数据库

PS:本表只是类似比较,可以按照关系型数据库的类型理解 ES 里的概念。

关系型数据库ElasticSearch
数据库索引
类型
文档
字段
表结构映射(Mapping)
SQLDSL(Domain Specific Language)
select * from xxxGET http://
update xxx set xxx=xxxPUT http://
delete xxxDELETE http://
索引全文索引

结语

本篇文章我们简单介绍了Elasticsearch的一些概念,理解这些概念,这对我们后面的学习是有帮助的。




-------------文章结束啦 ~\(≧▽≦)/~ 感谢您的阅读-------------

您的支持就是我创作的动力!

欢迎关注我的其它发布渠道