在学习es的过程中,总是能看到将es与关系型数据库进行比较,但实际上有些小小的问题
Relational DB ⇒ Databases ⇒ Tables ⇒ Rows ⇒ Columns
Elasticsearch ⇒ Indices ⇒ Types ⇒ Documents ⇒ Fields
因为在后面的版本中,type就不推荐使用了,也就是说这个概念其实可以忽略。
可以看下官方的解释
https://www.elastic.co/cn/blog/index-vs-type
- Fields need to be consistent across types. For instance if two fields have the same name in different types of the same index, they need to be of the same field type (string, date, etc.) and have the same configuration.
mysql中同名的字段在两个表中毫无关系。但es中同一个Index 下不同的 Type 如果有同名的字段,他们会被 Luecence 当作同一个字段 ,并且他们的定义必须相同。
也就是说,index更像是一个表,type并没有什么意义
index:
存放document的集合
Document:
每一条纪录称为document,是json形式,可以看作是关系数据库中的行
cluster:
一个ES集群由一个或多个节点(Node)组成,每个集群都有一个cluster name作为标识。
node:
一个ES实例就是一个node,一个机器可以有多个实例。
Shard:
shard分为Primary Shard(主分片)和 Replica Shard(副本)
副本是用来容灾和扩展性能的
一个index可以有多个shard