ES中倒排索引与mysql的对比

78 阅读1分钟

Elasticsearch

一、倒排索引


俩个关键概念

  • 文档:每一条数据就是文档,每一个文档有对应的id。
  • 词条:文档按照一定的规则分成的词语,用于搜索匹配。

步骤:

  1. 根据文档内容进行分词,会形成一个词条(词条唯一,会建立索引)与文档的对应关系,叫做词条库。
  2. 对搜索的内容也会进行分词,然后得到词条去和词条库进行匹配,可以快速根据词条索引得到对应的文档ID
  3. 根据得到的文档ID再去获得文档的消息。

上操作的每次搜索都是有索引的,所以搜索速度会很快,解决了原来sql模糊搜索不能使用索引只能全盘搜索,效率低的问题。

二、ES与MySql的对比


MySqlES说明
Table(表)Index相同类型的文档的集合
Row(行)Document一条条的数据,类似于数据库中的行(Row),文档都是JSON格式
Column(字段)Field字段,JSON文档中的字段(前面的key),类似与数据库中的Column名字
Schema(表结构)Mapping索引中的文档约束,类似于数据库中的表结构。
SQL(语句)DSLDSL是ES提供的JSON风格的请求语句,用来定义搜索条件。

3.png