ElasticSearch | 基本概念

文档 | Document

  • 文档相当于 MySQL 中的一条记录,是可搜索数据的最小单位,举个栗子,一条电影信息:
    movieId,title,genres
    1,Toy Story (1995),Adventure|Animation|Children|Comedy|Fantasy
    
  • 文档被序列化成 JSON 格式,保存在 ElasticSearch 中;
  • 每个文档都有一个 UniqueID
    • 可以自己指定;
    • 可以通过 ElasticSearch 自动生成;
文档的元数据

用于标注文档的相关信息。

  • _index:文档所属的索引名;
  • _type:文档所述的类型名;
  • _id:文档的唯一 id;
  • _source:文档的原始 JSON 数据;
  • _all:7.0 开始废除;
  • _version:文档的版本信息;
  • _score:文档在查询中的算分;

索引 | Index

  • 索引是文档的容器,是一类文档的集合;
  • 索引是逻辑空间上的概念,Shard 是物理空间上的概念,索引中的文档分散在 Shard 上;
索引的 Mapping
  • 定义文档字段名和字段类型;
索引的 Setting
  • 定义不同的数据分布;
索引的词性

索引(动词)文档到 ElasticSearch 的索引(名词)中;
名词: B 树索引、倒排索引;

索引的 Type
  • 7.0 开始,索引的 Type 只能是 _doc;

集群 | Cluster

  • 不同的集群通过不同的名字来区分,默认名字:elasticsearch;
  • 一个集群可以有一个或多个节点
集群状态 | Cluster State

维护了一个集群中必要的信息:

  • 所有节点的信息;
  • 所有索引及其 Mapping 和 Setting 的信息;
  • 分片的路由信息;
集群的健康状况
  • Green:主分片与副本分片都正常分配;
  • Yellow:主分片全部正常分配,有副本分片未正常分配;
  • Red:有主分片未能分配;

节点 | Node

  • 一个节点就是一个 ElasticSearch 的进程,一个 Java 进程;
  • 一台机器上可以运行多个 ElasticSearch 进程,但是生产环境建议只运行一个;
  • 每个节点都有名字,通过配置文件配置,或者启动的时候通过参数 -E node.name=node1 指定;
  • 每个节点在启动之后,会分配一个 UID,保存在 data 目录下;
Master-eligible Node
  • Master-eligible Node 可以参加选主流程,成为 Master Node,每个 Node 启动后,默认就是 Master-eligible Node;
  • 当一个 Node 启动的时候,会将自己选举成 Master Node;
  • 每个 Node 都保存了集群的状态,只有 Master 节点才能修改集群的状态信息;
Master Node
  • 只有 Master 节点才能修改集群的状态信息;
Data Node
  • 可以保存数据节点,负责保存分片数据,在数据扩展上起到了至关重要的作用;
Coordinating Node
  • 负责接收 Client 的请求,将请求分发到合适的节点,最终把结果汇集到一起;
  • 每个节点默认都起到了 Coordinating Node 的职责;
Hot & Warm Node
  • 配置好的硬件作为 Hot Node,配置低的硬件做 Warm Node,降低集群部署成本;
Machine Learning Node
  • 负责跑机器学习的 Job,用来做异常检测;

分片| Shard

一个分片是一个运行的 Lucene 实例。

主分片 | Primary Shard
  • 用以解决数据水平扩展的问题,通过主分片,可以将数据分布在集群内的所有节点之上;
  • 主分片数在索引创建的时候指定,后续不允许修改,除非 Reindex;
副本分片 | Replica Shard
  • 副本分片是主分片的拷贝,用于解决数据高可用的问题;
  • 副本分片数可以动态调整;
  • 增加副本数,可以在一定程度上提高服务的可用性(读取的吞吐量);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值