​ ES的倒排索引机制和ES相关概念对比MySQL

53 阅读2分钟

一、ES中的倒排索引


  先把文档内容进行分词,形成词条与文档ID的对应关系,叫做词条库,词条具备唯一性,建立索引
# 也就是通过特定的关键词与储存相关数据文档的id形成对应关系,形成一个与表形式相似的词条库;

如下图: 例如某个词条库的关键词为“手机”,则该词条库对应的数据文档id为 小米手机(id = 1) 和 华为手机(id = 2) 若某个词条库的关键词为“小米”,则该词条库对应的数据文档id为 小米手机(id = 1) 和 华为小米手机充电器(id = 3) 、 小米手环(id = 4)

该对应规则类似数据库的模糊查询 ('% name %')

词条库和文档id的对应格式如下:

图片.png

文档id与相关数据对应的格式如下:

图片.png

分好对应的词条库之和,再通过对传入的搜索信息进行特定的分词规则进行分词,
再将所获取到的分词内容与词条库中匹配,去获取对存放应数据文档id,找到对应的文档信息。

例如:当搜索输入内容为(小米 手机),首先将其分为 小米 和 手机,再利用小米、手机两个搜索的关键词去匹配词条库中的关键词,获取对应存放信息的文档id,找到对应的文档信息。

二、ES相关概念对比MySQL

MySQLElasticsearch说明
TableIndex索引(index),就是文档的集合,类似数据库的表(table)
RowDocument文档(Document),就是一条条的数据,类似数据库中的行(Row),文档都是JSON格式
ColumnField字段(Field),就是JSON文档中的字段,类似数据库中的列(Column)
SchemaMappingMapping(映射)是索引中文档的约束,例如字段类型约束。类似数据库的表结构(Schema)