一、倒排索引
● 文档:每条数据就是一个文档
● 词条:文档按照语义分成的词语
1.对文档内容进行分词,形成词条与文档ID的对应关系,叫做词条库,字条具有唯一性,建立索引
2.对搜索内容进行分词,分词后得到一个关键词列表,根据关键字去词条库中查找匹配,找到对应的文档ID列表
3.根据文档ID列表,找到对应的文档信息。
比如:
| id | title | price |
|---|
| 1 | 小米手机 | 5999 |
| 2 | 华为手机 | 6999 |
| 3 | 小米手机充电器 | 35 |
进行分词就变成了这样:
| 词条 | 文档id |
|---|
| 小米 | 1 |
| 手机 | 1,2,3 |
| 充电器 | 3 |
| 手机充电器 | 3 |
二、## Elasticsearch相关概念对比MySQL
| MySQL | Elasticsearch | 说明 |
|---|
| Table(表) | Index | 索引(index),就是文档的集合,类似数据库的表(table) |
| Row(行) | Document | 文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式 |
| Column(字段) | Filed | 字段【域】,就是JSON文档中的字段,类似数据库中的列(Column) |
| Schema(表结构) | Mapping | Mapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema) |
| SQL(语句) | DSL | 语句 |