赞
踩
索引(index) 类型(Type) 文档(Document) 字段 (Fields)
类比传统的关系型数据库
Relational DB | ElasticSearch |
---|---|
数据库(database) | 索引(index) |
表(table) | 类型(type) |
行(rows) | 文档(document) |
字段(columns) | 字段 (fields) |
ElasticSearch集群中可以包含多个索引,每个索引中包含多个类型,每个类型下包含多个文档,每个文档中又包含了多个字段。
在ElasticSearch 7.x版本去除了type的概念。
节点(node)
一个运行中的 Elasticsearch 实例称为一个节点,而集群是由一个或者多个拥有相同cluster.name配置的节点组成, 它们共同承担数据和负载的压力。
ES集群中的节点有三种不同的类型:
分片(shard)
shard = primary shard(主分片)
replica = replica shard(副本节点)
一个索引中的数据保存在多个分片中,相当于水平分表。ES实际上就是利用分片来实现分布式的,分片是数据的容器,文档保存在分片内,分片又被分配到集群内的各个节点里。 当你的集群规模扩大或者缩小时, ES会自动的在各节点中迁移分片,使得数据仍然均匀分布在集群里。
一个分片可以是主分片或者副本分片。 索引内任意一个文档都归属于一个主分片,所以主分片的数目决定着索引能够保存的最大数据量。一个副本分片只是一个主分片的拷贝。副本分片作为硬件故障时保护数据不丢失的冗余备份,并为搜索和返回文档等读操作提供服务。
在索引建立的时候就已经确定了主分片数,但是副本分片数可以随时修改。默认情况下,一个索引会有5个主分片,而其副本可以有任意数量。
倒排索引 Inverted index
传统数据库一般都是以文档id作为索引,以文档内容作为记录,这种也就是正排索引。倒排索引指的是以单词或记录作为索引,将文档id作为记录。这样更方便通过单词或记录查找所在的文档。
文档id | 文档内容 |
---|---|
1 | php is the best language in the world |
2 | java is the best language in the world |
3 | C# is the best language in the world |
正排索引 根据文档id
倒排索引
单词 | 文档ids |
---|---|
php | 1 |
java | 2 |
C# | 3 |
is | 1,2,3 |
the | 1,2,3 |
best | 1,2,3 |
language | 1,2,3 |
in | 1,2,3 |
world | 1,2,3 |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。