我们在学习elasticsearch的核心概念之前,回顾下我们使用传统数据库查询数据的时候应该怎么做的?假设我们使用mysql数据库存储一些数据,我们的操作步骤是怎样的?
建立数据库->建表->插入数据->查询
elasticsearch的主要概念
- 索引(index)
一个索引可以理?解成一个关系型数据库
- 类型(type)
一种type就像一类表,比如user表,order表
注意:
- ES 5.x中一个index可以有多种type
- ES 6.x中一个index只能有一种type
- ES 7.x以后已经移除type这个概念
- 映射(mapping)
mapping定义了?每个字段的类型等信息。相当于关系型数据库中的表结构
- 文档(document)
一个document相当于关系型数据库中的一?记录
- 字段(field)
相当于关系型数据库表的字段
- 集群(cluster)
集群由一个或多个节点组成,一个集群有一个默认名称"elasticsearch"
- 节点(node)
集群的节点,一台机器或者一个进程
- 分片和副本(shard)
- 副本是分片的副本。分片有主分片(primary Shard)和副本分片(replica Shard)之分
- 一个Index数据在物理上被分布在多个主分片中,每个主分片只存放部分数据
- 每个主分片可以有多个副本,叫副本分片,是主分片的复制