ElasticSearch系列文章一 核心概念

2020-07-16  本文已影响0人  哭泣哭泣帕拉达

ElasticSearch 核心概念

索引(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)

一个索引中的数据保存在多个分片中,相当于水平分表。ES实际上就是利用分片来实现分布式的,分片是数据的容器,文档保存在分片内,分片又被分配到集群内的各个节点里。 当你的集群规模扩大或者缩小时, ES会自动的在各节点中迁移分片,使得数据仍然均匀分布在集群里。

一个分片可以是主分片或者副本分片。 索引内任意一个文档都归属于一个主分片,所以主分片的数目决定着索引能够保存的最大数据量。一个副本分片只是一个主分片的拷贝。副本分片作为硬件故障时保护数据不丢失的冗余备份,并为搜索和返回文档等读操作提供服务。

在索引建立的时候就已经确定了主分片数,但是副本分片数可以随时修改。默认情况下,一个索引会有5个主分片,而其副本可以有任意数量。


image

倒排索引 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
上一篇 下一篇

猜你喜欢

热点阅读