🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
Elasticsearch 是面向文档型数据库,一条数据在这里就是一个文档。为了方便理解,下图展示了Elasticsearch与传统关系型数据库的类比。 :-: ![](https://img.kancloud.cn/58/33/5833e4142adfbd87b356a1da8fbb9cb5_1256x224.png) **1. Index-索引** Elasticsearch 数据管理的顶层单位就叫做 Index(索引),相当于关系型数据库里的数据库的概念。另外,<mark>每个Index的名字必须是小写</mark>。 **2. Type-类型** Document 可以分组,比如employee这个 Index 里面,可以按部门分组,也可以按职级分组。这种分组就叫做 Type,它是虚拟的逻辑分组,用来过滤 Document,类似关系型数据库中的数据表。 :-: **不同的版本,类型发生了不同的变化** | 版本 | Type | | --- | --- | | 5.x | 支持多种 type | | 6.x | 只能有一种 type | | 7.x | 默认不再支持自定义索引类型(默认类型为:`_doc`)| <br/> 不同的 Type 应该有相似的结构(Schema),性质完全不同的数据(比如 products 和 logs)应该存成两个 Index,而不是一个 Index 里面的两个 Type(虽然可以做到)。 **3. Document-文档** Index里面单条的记录称为 Document(文档)。许多条 Document 构成了一个 Index。Document 使用 JSON 格式表示。同一个 Index 里面的 Document,不要求有相同的结构(scheme),但是最好保持相同,这样有利于提高搜索效率。 **4. Field-字段** 每个Document都类似一个JSON结构,它包含了许多字段,每个字段都有其对应的值,多个字段组成了一个 Document,可以类比关系型数据库数据表中的字段。