lucene,Lucene的存储空间优化策略

Lucene为了缩减索引信息存储的空间,加快索引访问速度,采用了一些特殊的技巧与规则。
1. 前缀与后缀规则
Lucene在存储索引信息时,是先将信息按照字母顺序排列的,然后再依次对排好序的信息建立索引。而排好序的信息可能是如下的情况:
ab abc abcde abcdefgh
如果我们直接像这样存储,就会浪费很多存储空间,因为很多信息都发生了存储冗余的情况。例如第一个单词ab存储以后,第二个单词的前缀ab再次存储在不同的空间时,就发生了存储冗余,后面相邻的单词之间也会发生相同的情况。最后就导致大量的存储空间浪费!
而Lucene则为我们提出了一种精妙的解决方案,就是采用了“前缀与后缀”规则。它存储的策略就是:当某个词和前一个词有共同的前缀的时候,后面的词仅仅保存前缀在词中的偏移,以及除前缀以外的字符串。
例如对如上排好序的信息在采用前缀后缀规则之前及之后的存储情况如下所示:
2 ab 3 abc 5 abcde 8 abcdefgh
Tags: 

延伸阅读

最新评论

发表评论