Elasticsearch7.8.0版本进阶——核心概念

Posted 小志的博客

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Elasticsearch7.8.0版本进阶——核心概念相关的知识,希望对你有一定的参考价值。

目录

一、Elasticsearch核心概念 vs 数据库核心概念

  • 核心概念的理解

    Elasticsearch核心概念数据库核心概念
    索引(Index )ES中的Index 相当于数据库中的每一个
    类型(Type)ES中的Type相当于数据库中的每一张
    文档(Document )ES中的Document相当于数据库中的每一数据
    字段(Field )ES中的Field 相当于数据库中表的字段
    映射(Mapping )ES中的Mapping 相当于数据库中表的字段限制(如:数据类型、默认值)
    分片(Shards )ES中的Shards 相当于数据库中的多张表(即分表)
    副本(Replicas)ES中的Replicas相当于数据库中的多张表(即分表)的备份

二、Elasticsearch核心概念理解

2.1、索引(Index )

  • 一个索引由一个名字来标识(必须全部是小写字母),并且当我们要对这个索引中的文档进行索引、搜索、更新和删除的时候,都要使用到这个名字。
  • 在一个集群中,可以定义任意多的索引。
  • 能搜索的数据必须索引,这样的好处是可以提高查询速度。
  • Elasticsearch 索引的精髓:一切设计都是为了提高搜索的性能。

2.2、类型(Type)

  • 在一个索引中,你可以定义一种或多种类型。
  • 一个类型是你的索引的一个逻辑上的分类/分区。
    elasticsearch版本类型(Type )
    5.x支持多种 type
    6.x只能有一种 type
    7.x默认不再支持自定义索引类型(默认类型为:_doc)

2.3、文档(Document )

  • 一个文档是一个可被索引的基础信息单元,也就是一条数据。
  • 文档以 JSON(Javascript Object Notation)格式来表示。
  • 在一个 index/type 里面,你可以存储任意多的文档。

2.4、字段(Field)

  • 相当于是数据表的字段,对文档数据根据不同属性进行的分类标识。

2.5、 映射(Mapping )

  • 映射是处理数据的方式和规则方面做一些限制,如:某个字段的数据类型、默认值、
    分析器、是否被索引等等。
  • 处理 ES 里面数据的一些使用规则设置也叫做映射,按着最优规则处理数据对性能提高很大,因此才需要建立映射。

2.6、 分片(Shards)

  • 将索引划分成多份的能力,每一份就称之为分片。
  • 当你创建一个索引的时候,你可以指定你想要的分片的数量。每个分片本身也是一个功能完善并且独立的“索引”,这个“索引”可以被放置到集群中的任何节点上。
  • 分片重要的原因:
    (1)、允许你水平分割 / 扩展你的内容容量。
    (2)、允许你在分片之上进行分布式的、并行的操作,进而提高性能/吞吐量。
  • 至于一个分片怎样分布,它的文档怎样聚合和搜索请求,是完全由 Elasticsearch 管理的。

2.7、 副本(Replicas)

  • Elasticsearch 允许你创建分片的一份或多份拷贝,这些拷贝叫做复制分片(副本)。
  • 复制分片之所以重要,有两个主要原因:
    (1)、在分片/节点失败的情况下,提供了高可用性。因为这个原因,注意到复制分片从不与
    原/主要(original/primary)分片置于同一节点上是非常重要的。
    (2)、扩展你的搜索量/吞吐量,因为搜索可以在所有的副本上并行运行。

2.8、 分配(Allocation)

  • 将分片分配给某个节点的过程,包括分配主分片或者副本。如果是副本,还包含从主分
    片复制数据的过程。这个过程是由 master 节点完成的。

以上是关于Elasticsearch7.8.0版本进阶——核心概念的主要内容,如果未能解决你的问题,请参考以下文章

Elasticsearch7.8.0版本进阶——倒排索引

Elasticsearch7.8.0版本进阶——近实时搜索

Elasticsearch7.8.0版本进阶——分片控制

Elasticsearch7.8.0版本进阶——分布式集群(故障转移)

Elasticsearch7.8.0版本进阶——持久化变更

Elasticsearch7.8.0版本进阶——数据更新流程