倒排索引压缩
索引压缩的作用
- 提高磁盘利用率
- 提高内存缓存利用率
- 提高磁盘到内存的传输率
词典压缩
笔者认为词典压缩算法对中文搜索来说意义不大。之所以要压缩词典,主要是因为Heaps定律指出,随着文档数目的增加,词汇表会持续增长而不会稳定到一个最大值。而中文分词与英文分词的不同在于中文分词是基于词典的,词汇主要来源于词典,因此除非有新词挖掘算法不断扩充词典,否则索引中的中文词项覆盖了整个词典之后,就不会再增长了。
- 将词典看成单一字符串,每个词结尾处保存指向下一个词的指针。
- 按块存储
- 前端编码(公共前缀)
- 完美哈希(无法动态更新)
倒排记录表压缩
- Delta编码
- 可变字节码
- 基于位编码(γ编码)
参考资料:《信息检索导论》-- 第五章