文档和字段

  1. elasticsearch是面向文档(Document)存储的,可以是数据库中的一条商品数据,一个订单信息。文档数据会被序列化为json格式后存储在elasticsearch中。
  2. 而Json文档中往往包含很多的字段(Field),类似于数据库中的列。

索引和映射

  1. 索引(Index),就是相同类型的文档的集合。
    • 所有用户文档,就可以组织在一起,称为用户的索引。
    • 所有商品的文档,可以组织在一起,称为商品的索引。
    • 所有订单的文档,可以组织在一起,称为订单的索引。
  2. 因此,我们可以把索引当做是数据库中的表。
  3. 数据库的表会有约束信息,用来定义表的结构、字段的名称、类型等信息。因此,索引库中就有映射(mapping),是索引中文档的字段约束信息,类似表的结构约束。

mysql与elasticsearch

MySQL Elasticsearch 说明
Table Index 索引(index),就是文档的集合,类似数据库的表(table)
Row Document 文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式
Column Field 字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)
Schema Mapping Mapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema)
SQL DSL DSL是elasticsearch提供的JSON风格的请求语句,用来操作elasticsearch,实现CRUD
  1. 在实际应用中往往是两者结合使用:
    • 对安全性要求较高的写操作,使用mysql实现
    • 对查询性能要求较高的搜索需求,使用elasticsearch实现
    • 两者再基于某种方式,实现数据的同步,保证一致性