一、索引压缩概述
使用压缩的目的:
(1)因为我们想要把尽量多的数据放入内存,因此压缩能够达到这个目的;
(2)从磁盘到内存的传输时间会缩短;
压缩分类:
(1)无损压缩:压缩后的数据能还原全部信息;
(2)有损压缩:压缩后会丢失一些信息;
如果有损压缩后丢失的信息用户并不关心,则有损压缩也是可以接受的;
二、Heaps定律
通过整个文档集词条数来估计词项数目;
主要思想:随着文档集增加,词项数目会增加,并且没有上限;
M=kT^b;
三、Zipf定律
通过词项在文档集中的词频排名来估计词项之间的词频比例;
如果词项A出现次数排名第一,词项B出现次数排名第二,词项C出现次数排名第三,则A出现次数是B出现次数的两倍,则A出现次数是C出现次数的1/3;
四、词典压缩
虽然与倒排记录表相比,词典的空间很小,但是为了能够把词典全部都放在内存中,我们必须要对其进行压缩;
1.词项定长存储
固定词项分配大小为20B;
需要空间:M*(20+4+4)=M*28;
缺点:
(1)大部分单词都少于20B,浪费空间;
(2)对于某几个大于20B的单词也不能存储;
2.词项作为一个字符串
将每个词项合并,并组成一个长字符串;
对于每个词项增加一

本文概述了信息检索中索引压缩的重要性,包括无损与有损压缩,Heaps定律和Zipf定律的介绍。接着详细讨论了词典压缩方法,如词项定长存储、字符串合并、按块存储和前端编码,以及posting压缩技术,如VB编码、一元编码、gamma编码和最优编码长度。这些压缩方法在节省存储空间和提高传输效率方面起到关键作用。
最低0.47元/天 解锁文章
1769

被折叠的 条评论
为什么被折叠?



