倒排索引、ES相关概念对比MYSQL

98 阅读1分钟

倒排索引

倒排索引中有两个非常重要的概念:

  • 文档(Document):用来搜索的数据,其中的每一条数据就是一个文档。例如一个网页、一个商品信息
  • 词条(Term):对文档数据或用户搜索数据,利用某种算法分词,得到的具备含义的词语就是词条。例如:我是中国人,就可以分为:我、是、中国人、中国、国人这样的几个词条

文档和词条的关联关系类似书的索引页,根据指定词条找到对应的文档ID,分词是倒排索引的一个前提条件,只有将文档内容进行分词以后才能进行倒排索引

image.png


倒排索引流程流程:

1.先利用分词算法对文档内容进行分词,形成词条与文档id的对应关系,为词条建立索引,分词后的词条具有唯一性。

2.对搜索内容进行分词,得到分词后的关键词列表,根据词条到词条库中查询,得到对应的文档ID

3.根据文档ID找到对应的文档信息

倒排索引的搜索流程如下(以搜索"华为手机"为例),如图:

image.png


ES相关概念对比MYSQL

MySQLElasticsearch
Table【表】Index【索引】
Row【列 字段】Document【文档(json)】
Column【行 记录】Filed【字段(域)】
Schema【数据库】Mapping【映射(结构)】
SQL【语句】DSL【语句】