一、elasticsearch基础概念
1.1 文档 document
概念:文档是elasticsearch可搜索的最小单元。文档类似于关系型数据库中的记录,记录中包含很多字段,文档中同样也会包含很多字段
1.1 文档的元数据:
_index: 文档所属的索引名
_type: 文档所属的类型名
_id: 文档唯一ID
_source: 文档的原始JSON数据
_version: 文档版本信息
_score: 相关信息打分1.2 每个文档都有唯一的ID, 可以手动指定,或者由ES自动生成
1.2 索引 index
概念:es中的索引,类似于数据库中的表的概念,es中的索引,就是一类文档的集合,是文档的容器
2.1 index体现了逻辑空间的概念,每个索引都有自己的Mapping定义
索引的Mapping定义了文档字段的类型,Setting定义了不同数据分布
关系型数据库和elasticsearch的形象类比
关系型数据库 | elasticsearch |
table | index |
row | document |
colume | filed |
schema | mapping |
SQL | DSL |
1.3 分片 shard
分片: 类似于关系型数据库中的分表的概念,分为主分片和副本分片
主分片:将数据分布到集群的所有节点;主分片在索引创建时指定,后续不允许修改。除非进行索引重建
副本分片:主分片的拷贝,增加副本分片一定程度上可以提高服务读取的吞吐量
1.4 节点 node
节点就是一个elasticsearch实例,本质上就是一个Java进程
每个节点都有自己的名称,节点启动后会分配一个UID,保存在data目录下
二、elasticsearch中node 角色
角色名称 | 作用 |
eligible node | 每个节点启动后,默认就是一个eligible node,eligible node可以参见选主,成为master |
master node | 每个节点上都保存了集群的状态,只有master节点可以修改集群状态 |
data node | 保存数据的节点 |
coordinating node | 负责接收client请求,将请求分发到合适的节点,最终把结果汇集起来;默认每个节点都是coordinating node |
ingest node | 对文档进行预处理。Ingest Node拦截bulk and index requests,转换过后,然后将文档传递回索引或批量API。 默认情况下,所有节点都启用ingest,因此任何节点都可以处理ingest tasks |
Hot & Warm node | 将不同的配置的node标记为Hot /Warm node.降低集群部署成本 |