ElasticSearch 核心概念及与关系型数据库的对比
文档 (Document)
- ElasticSearch (ES) 中的数据以 文档 形式存储,格式为 JSON。
- 例如,假设有一个商品表,其中每一行数据对应着 ES 中的一个文档。
- 不同的表(如商品表、用户表、订单表)对应 ES 中不同类型的文档数据。每张表的数据需要序列化成 JSON 格式存储。
- 文档 在 ES 中类似于关系型数据库中的 行 数据。
索引 (Index)
- 在 ES 中,相同类型的文档会被归为同一个 索引(或索引库)。
- 索引 类似于关系型数据库中的 表,用于存储特定类型的数据集合。
- 例如:商品数据存储在 商品索引 中,用户数据存储在 用户索引 中。
- 索引 是相同类型文档的集合,类似数据库中表格的作用。
映射 (Mapping)
- 映射 (Mapping) 是 ES 中用于定义文档结构的约束机制,类似于关系型数据库中的 表结构 或 约束(schema)。
- 映射中定义了文档的字段名、字段类型、字段的存储方式等。
- 例如,商品数据的文档可能包含字段:ID、标题、价格等,映射定义了这些字段的类型和约束。
与关系型数据库的对比
关系型数据库概念 | ElasticSearch 概念 | 说明 |
---|---|---|
表 (Table) | 索引 (Index) | 存储相同类型数据的集合 |
行 (Row) | 文档 (Document) | 存储数据的基本单元 |
列 (Column) | 字段 (Field) | 数据的属性或特征 |
表结构 (Schema) | 映射 (Mapping) | 数据字段的类型和约束 |
- 表(Table)在关系型数据库中存储结构化数据,每行对应一条记录,每列表示一个字段。
- 在 ElasticSearch 中,索引(Index)是存储文档(Document)的地方,文档的字段则类似于关系型数据库中的列。
查询与操作
- 关系型数据库 使用 SQL 语句进行查询。
- ElasticSearch 使用 DSL(Domain Specific Language) 进行查询,DSL 语法是基于 JSON 格式的。
- 查询的条件和操作通过构建 JSON 格式的查询语句来完成,类似于关系型数据库中的 SQL 语句。
数据存储流程
与关系型数据库类似,在 ElasticSearch 中进行数据存储也有一定流程:
- 创建索引库:定义好数据结构(即映射,Mapping),类似于创建数据库中的表。
- 数据插入:向索引库中插入数据,即创建文档,类似于向数据库表中插入行数据。
- 查询:使用 DSL 查询语言进行数据查询,类似于关系型数据库中的 SQL 查询。
总结
ElasticSearch 与关系型数据库(如 MySQL)有很多相似之处,尤其是在存储数据和查询方面。理解了这些基本概念后,可以更好地进行 ElasticSearch 的实际操作。
- 文档(Document)类似行(Row),索引(Index)类似表 (Table)。
- 映射(Mapping)类似表结构(Schema)。
- 查询语言:关系型数据库使用 SQL,ElasticSearch 使用 DSL(JSON 格式)。