索引压缩

索引压缩

信息检索中有两个主要数据结构:词典和倒排记录表,索引压缩主要是压缩这两个数据结构。索引压缩的优点:

  • 节省磁盘空间
  • 增加高速缓存技术的利用率
  • 加快数据从磁盘到内存的传输速度

对解压缩算法的要求:必须快

30定律

出现频率最高的30个词在书面文本中占了30%的出现比例。

无损压缩与有损压缩

无损压缩是指压缩之后所有的信息都被保留。有损压缩则会丢掉一些信息,但会得到更高的压缩率。

Heaps定律

一个对词项数据进行估计的方法是采用Heaps 定律:

M = k T^b

​ 其中T是文档集合的词条个数,30 <= k <= 100, b 约等于 0.5。Heaps定律认为:文档集合大小和词汇量之间可能存在的最简单的关系是他们在对数空间中存在现象关系,并且这种线性关系往往和实际情况相吻合。

Heaps定律提出了两个假设:

  • 随着文档数目的增加,词汇量会持续增长而不会稳定到一个最大值
  • 大规模文档集的词汇量会非常大

Zipf定律

一个常用的估计词项在文档中分布的模型是Zipf定律:在给定的语料中,对于任意一个term,其频度(freq)的排名(rank)和freq的乘积大致是一个常数。如果t1 是文档集合中出现最多的词项,t2是文档集合中出现第二多的词项,以此类推,排名第i多的词项的文档集合频率cfi 与 1/ i成正比

cf~i \propto \frac 1 i

词典压缩

词典压缩的主要目的是将词典放入内存,或者说至少要把大部分词典放入内存,这样才能获得很高的查询吞吐率。主要有两种压缩方式

  • 将词典看成单一字符串的压缩方法:整个词典采用定长数组来存储且所有词项按照字典顺序排序
  • 按块存储:将长字符串中的词项进行分组变成大小为k的块(即k个词项一组),然后每个块只保留第一个词项的指针,同时用一个额外字节将每个词项的长度存储在每个词项的首部。

倒排记录表的压缩

主要思想是对文档ID的间距而不是文档ID进行编码。主要有以下方式:

  • 可变字节码(VB):每个字节的低7位是二进制数,高位是一个决定位。编码的最后一个字节高位位置为1,位置为0。处理器一般是以字节为处理单位,所以Variable ByteCode速度快,但是处理大数据压缩比不高
  • γ编码:一个和最优编码长度差距在常数倍之内的方法是γ 编码。γ 编码将间距G表示成长度(length)和偏移(offset)两个部分进行变长编码。G的偏移实际上是G的二进制编码,但是前端的1 被去掉①。比如,对13(二进制为1101)进行编码,其偏移为101。G的长度指的是偏移的长度,并采用一元编码。对于刚才的例子,偏移的长度是3 位,因此其长度部分的编码是1110。因此,13 的整个γ 编码是1110101,即长度部分1110 和偏移部分101 的连接。表5-5 中的右列中给出了一些其他数的γ 编码的例子。
    对γ 编码解码时,首先读入一元编码直至遇到0 结束,比如在对1110101 解码时,会一开始读入前4 位1110。然后便知道后面的偏移部分的长度是3,因此,再正确读入后续的3 位编码101,补上原来去掉的前端的1,最后可以得到 101→1101 = 13。
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,732评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,496评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,264评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,807评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,806评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,675评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,029评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,683评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 41,704评论 1 299
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,666评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,773评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,413评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,016评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,978评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,204评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,083评论 2 350
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,503评论 2 343