【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
BinaryDocValuesField与SortedDocValuesField相似,但又有不同之处,当字段的值重复项较少且共同前缀较少时使用BinaryDocValuesField存储较好。
该字段的存储在代码实现较简单主要过程就是两步:
1、写入字段原始字节数组没有采用任何压缩算法;
2、采用Monotonic算法对每个字段值在文件中的指针进行压缩存储,该算法对于这种近似于线性的序列值压缩非常有效。有兴趣的可以看看结合lucene谈谈整形值压缩--上篇。
原始代码中除了这两个关键步骤,还有一个重要的优化类IndexedDISI将放在下一篇单独说明!
来源:oschina
链接:https://my.oschina.net/u/1268334/blog/3043644