3.1 ElasticSearch核心概念

3.1.1 集群(cluster)

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

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

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

cluster.name: es-zyc-cluster

3.1.2 节点(Node)

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

3.1.3 索引(Index)

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

名词

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

动词

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

3.1.4 类型(Type)

类型是索引上的逻辑分类或者分区。在 es6 之前,一个索引中可以有多个类型,从 es7 开始,一个索引中,只能有一个类型(_doc)。在 es6.x 中,依然保持了兼容,依然支持单 index 多个 type 结构,但是已经不建议这么使用。

3.1.5 文档(Document)

一个可以被索引的数据单元。文档的格式都是JSON的。

3.1.6 分片(Shards)

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

默认下,从7.x开始一个索引会自动创建1个分片,并且为每一个分片创建一个副本。

3.1.7 副本(Replicas)

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

3.1.8 Settings

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

3.1.9 Mapping

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

3.1.10 Analyzer

字段分词方式的定义。

3.2 ElasticSearch Vs 关系型数据库

关系型数据库 ElasticSearch
数据库 索引
类型(6.x), 7.x及其以上_doc
文档
字段
表结构 mapping
SQL DSL
select * from xxx GET http://
update xxx set xxx PUT http://
delete xxx DELETE http://
索引 全文检索
posted on 2021-11-09 14:09  --工具人  阅读(39)  评论(0编辑  收藏  举报