Elasticsearch的倒排索引

Elasticsearch的倒排索引

elasticsearch之所以有如此高性能的搜索表现,正是得益于底层的倒排索引技术。
倒排索引的概念是基于MySQL这样的正向索引而言的。

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

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

步骤:

  1. 先把文档内容进行分词,形成词条与文档ID的对应关系,叫做词条库,词条具备唯一性,建立索引
  2. 对搜索内容进行分词,把分词后得到一个关键词列表,根据关键词去词条库中匹配,再找到对应的文档ID列表
  3. 然后根据文档ID列表,找到对应的文档信息

image

以搜索“华为手机”为例
1.“华为手机” 可以得到词条 华为 、手机
2.根据词条列表查找得到对应文档id
华为 => 2,3
手机 => 1,2
得到最终文档id = 1,2,3 去正向索引查找具体文档即可
image

流程图:
image

Elasticsearch与MySQL的概念对比

MySQL Elasticsearch ES描述
Table Index 索引
Row Document 文档【json】
Column Filed 字段【域】
Schema Mapping 映射【结构】
SQL DSL 语句

image

本文作者:是橙子呐

本文链接:https://www.cnblogs.com/yiwangshi/p/18468330

版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。

posted @   是橙子呐  阅读(13)  评论(0编辑  收藏  举报
💬
评论
📌
收藏
💗
关注
👍
推荐
🚀
回顶
收起
点击右上角即可分享
微信分享提示
  1. 1 404 not found REOL
404 not found - REOL
00:00 / 00:00
An audio error has occurred.