Elastic:倒排索引

什么是索引?

学习过MySql的都知道,索引底层的数据结构是B+树,B+树作为索引底层数据结构的实现方式在提高查询速度方面有着很大的优势。
B树根节点和叶子结点都存储data数据就导致每个page页存储的数量少
在这里插入图片描述
B+树只有根节点存储的有数据,叶子结点只存储的是主键和子节点的内存地址信息 叶子结点数据连续的
B+ 树数据块能存放的数量更多 深度降低 每次查询都是一次IO 所以会减低系统读取的IO次数从而来减少查询时间
在这里插入图片描述
创建索引的时候要选字段小的建立 这样数据页存储的数据多 深度会降低

什么是倒排索引

倒排索引(Inverted Index):倒排索引是实现“单词-文档矩阵”的一种具体存储形式,通过倒排索引,可以根据单词快速获取包含这个单词的文档列表。倒排索引主要由两个部分组成:“单词词典”和“倒排文件”。

  • 单词词典(Lexicon):搜索引擎的通常索引单位是单词,单词词典是由文档集合中出现过的所有单词构成的字符串集合,单词词典内每条索引项记载单词本身的一些信息以及指向“倒排列表”的指针。
  • 倒排列表(PostingList):倒排列表记载了出现过某个单词的所有文档的文档列表及单词在该文档中出现的位置信息,每条记录称为一个倒排项(Posting)。根据倒排列表,即可获知哪些文档包含某个单词。
  • 倒排文件(Inverted File):所有单词的倒排列表往往顺序地存储在磁盘的某个文件里,这个文件即被称之为倒排文件,倒排文件是存储倒排索引的物理文件。在这里插入图片描述
    有100篇文章doc,用分词器把100篇文章的内容按照习惯用法切割成单词序列,这就是词典;
    每一个单词还会标记这个单词在哪些文档出现过,并且记录相关的文档唯一标识ID序号,这些文档唯一的标记序号组成的文档列表就是倒排列表;
    这些倒排列表存储在磁盘的文件就是倒排文件;
    倒排索引实质上就是表明了单词属于的哪个文档的关系。
    在这里插入图片描述
    倒排索引的使用就是根据匹配到的term dictionary的单词所属的文档ID找到对应的描述
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值