IT大数据入门学习,ElasticSearch 术语
- 2020 年 3 月 10 日
- 笔记
主要介绍 ElasticSearch 的基本概念,学习文档、索引、集群、节点、分片等概念。
文档(Document)
ElasticSearch(简称 ES) 是面向文档的,文档是所有可搜索数据的最小单位。
大家可以把文档理解为关系型数据库中的一条记录。
在 ES 中文档会被序列化成 JSON 格式,保存在 ES 中。在 ES 中,每个文档都有一个 Unique ID,可以自己指定 ID 或者通过 ES 自动生成。
索引(Index)
索引简单来说就是相似结构文档的集合。索引有一个名称,一个索引可以包含很多文档,一个索引就代表了一类类似的或者相同的文档。
每一个索引都是自己的 Mapping 定义文件,用来去描述去包含文档字段的类型,分片(Shard)体现的是物理空间的概念,索引中的数据分散在分片上。
在一个的索引当中,可以去为它设置 Mapping 和 Setting,Mapping 定义的是索引当中所有文档字段的类型结构,Setting 主要是指定要用多少的分片以及数据是怎么样进行分布的。
类型(Type)
在 7.0 之前,每一个索引是可以设置多个 Types 的,每个 Type 会拥有相同结构的文档,在 7.0 开始,一个索引只能创建一个 Type,也就是 _doc。
每个索引里都可以有一个或多个 Type,Type 是索引中的一个逻辑数据分类,一个 Type 下的文档,都有相同的字段(Field)。

集群(Cluster)
ES 集群其实是一个分布式系统,要满足高可用性,高可用就是当集群中有节点服务停止响应的时候,整个服务还能正常工作,也就是服务可用性;或者说整个集群中有部分节点丢失的情况下,不会有数据丢失,即数据可用性。
节点(Node)
节点其实就是一个 ES 实例,本质上是一个 Java 进程,一台机器上可以运行多个 ES 进程,但是生产环境一般建议一台机器上只运行一个 ES 实例。
每一个节点都有自己的名字,节点名称很重要(在执行运维管理操作的时候),可以通过配置文件进行配置,或者启动的时候 -E node.name=node1 指定。每一个节点在启动之后,会分配一个 UID,保存在 data 目录下。
数据节点(Data Node)/协调节点(Coordinating Node)
可以保存数据的节点叫作 Data Node,负责保存分片上存储的所有数据,当集群无法保存现有数据的时候,可以通过增加数据节点来解决存储上的问题,在数据扩展上有至关重要的作用。
Coordinating Node 负责接收 Client 的请求,将请求分发到合适的节点,最终把结果汇集到一起返回给客户端,每个节点默认都起到了 Coordinating Node 的职责。
分片(Shard)
由于单台机器无法存储大量数据,ES 可以将一个索引中的数据切分为多个分片(Shard),分布在多台服务器上存储。有了分片就可以横向扩展,存储更多数据,让搜索和分析等操作分布到多台服务器上去执行,提升吞吐量和性能。
