ElasticSearch7笔记:基本概念

文档(document)

es是面向doc的,doc是搜索数据的最小单位,doc在es中被序列化为json格式,doc由多个key、value组成,每一个doc都有唯一的id。

一个doc类似数据库表的一条记录,doc包含的key类似数据库表的column。es是基于lucene的,so,doc中的key就是lucene中的field。

文档的元数据(meta-data)

元数据就是用来描述数据的数据,例如数据库表的定义,包含表名,列表,列长度类型,主键等信息。

doc的元数据用于标注文档的相关信息:
_index:文档所属的索引名称
_type:文档所属的类型,es7中强制为 _doc
_id:文档唯一id
_source:文档原始数据

索引(index)

索引(名词):索引的概念类似于关系数据库中的一张表,用来储存doc的地方,索引的复数是indices或indexes。

索引(动词):索引表示将一个文档存储到指定的索引(名词)中,这样文档才可以被检索或查询。

倒排索引:doc中的字段默认都会被分词、索引,以便可以对文档进行快速检索。

Mappings:定义文档的字段类型

Settings:定义数据的分布(数据的分片,数据的副本)

ES vs RDBMS

RDBMS ES
database indices
table index
row document
column field
schema mapping
sql dsl

节点(node)与集群(cluster)

节点就是一个es的进程实例,本质上就是一个java进程,每一个节点都有自己的节点名字node.name。同时拥有集群名称cluster.name,网络互通的节点间,拥有相同集群名称的节点会自动加入集群。

节点类型:

node.role desc
Master-eligible node 主节点,可以参加选主流程,只有主节点才能修改集群状态
Data node 数据节点,默认的节点角色,用来保存数据及执行相关数据操作
Ingest node 数据前置处理及转换节点,可以使用ingest进行数据过滤、转换
Coordinating node 负责接收请求,将请求转发到正确的节点,并最终汇总查询结果,起到负载均衡的作用,每个节点默认都是

分片(shard)和副本(replica)

分片类似于数据库的分区或分库操作,主要用来解决数据水平扩展,通过主分片可以将数据分布到集群中不同的节点上。

副本是主分片的copy,用来解决数据高可用,增加副本数一定程度上可以提高查询响应。

集群健康(cluster health)

集群健康有3种状态:green,yellow,red。主要用来说明集群中主分片和副本分片的健康情况。

color desc
green 主分片和副本分片均可用
yellow 主分片都可用,副本分片不是都可用
red 主分片不是都可用

通常只有一个节点的集群是yellow,因为主分片是正常的,副本分片在单实例上保存是无意义的,so,因为副本分片没有被分配出去,所以集群健康状态就为yellow了。

猜你喜欢

转载自blog.csdn.net/weixin_43275277/article/details/108314872