ElasticSearch核心概念介绍与说明
从逻辑概念和物理设计两个层面理解ES1、逻辑设计1)文档ES中索引和搜索数据的最小单位是文档2)类型类型是文档的逻辑容器,类似于表格是行的数据3)索引索引是映射类型的容器2、物理设计理解物理设计,重点是为了理解ES是如何扩展的1)节点2)分片分片是ES所处理的最小的单元。一个分片(Lucene的索引)是一个包含倒排索引的文件目录...
·
目录
从逻辑概念和物理设计两个层面理解ES
1、逻辑设计
1)文档(通常用JSON数据表示)
ES中索引和搜索数据的最小单位是文档,文档具有下述几个重要的特性:
- 自包含的:文档同时包含字段和其对应的取值
- 层次型的:文档中还可以包含新的文档
- 结构灵活:文档不依赖于预先定义的模式
2)类型
- 定义:类型是文档的逻辑容器,类似于表格是行的容器。
- 每个类型中字段的定义称为映射(类似于A->B)。
- 映射类型只是将文档进行逻辑划分,从物理角度来看,同一索引中的文档都是写入磁盘而不考虑他们所属的映射类型
3)索引
- 索引是映射类型的容器,是独立的大量文档的集合
上述三个概念,主要从逻辑层面对ES进行理解,文档、类型和索引三者具有递进的关系,
文档归属于一种类型,而类型存在于索引之中。将上述概念类比于关系数据库,如下表所示
DBMS ElasticSearch 数据库 索引 表格 类型 数据行 文档 模式 映射 index 一切皆索引
Elasticsearch集群可以包含多个索引(indices)(数据库),每一个索引可以包含多个类型(types)(表),每一个类型包含多
个文档(documents)(行),然后每个文档包含多个字段(Fields)(列)。
2、物理设计
理解物理设计,重点是为了理解ES是如何扩展的
1)节点
- 一个节点是一个ES的实例,一个运行ES的进程;
- 多个节点可以加入同一个集群,在elasticsearch.yml文件中,通过cluster.name设置集群的名称
2)分片(主分片、副本分片)
- 分片是ES所处理的最小的单元。一个分片(Lucene的索引)是一个包含倒排索引的文件目录
- 每份分片至少有一个副本分片(副本分片是主分片的完整副本,二者包含一样的文档,副本分片用于搜索,或主分片失效后称为新的主分片)
- ES索引由一个或多个主分片以及零个或多个副本分片构成
3)ES集群中分片的分布
- 水平扩展:增加节点,使分片在节点间实现负载均衡
- 垂直扩展:增加节点硬件资源,如内存、处理器等
索引案例
参考资源:《ElasticSearch in Action》、《ElasticSearch权威指南》
更多推荐
已为社区贡献1条内容
所有评论(0)