lucene中的docValue实现源码解读(十二)——总结

阅读更多

看完了lucene4.10.4的docValue的五种格式,做个总结吧,顺便和农历的2017说声拜拜,跨年夜,写博客,我估计是中国唯一。

一共五种格式,其中有三种是单值的,Binary,numeric,SortedDocValue,其中Numeric有三种存放格式,分别是压缩表、差值、公约数+差值,Binary可以认为就一种,SortedDocValue的存储格式稍微复杂些,他添加了获得排序的功能;还有两种多值域的,一个是SortedNumericDocValue,一个是SortedSet,其中SortedNumericDocValue虽然带有排序,但是实际上不是堆所有的doc进行排序,而是仅仅对一个doc的多个数字进行排序,无法获得某个排名的数字,但是SortedSet是排序的,他是SortedDocValue和SortedNumericDocValue的综合体。

如果对比一下Binary和Numeric的话,除了Binary这个格式,其他的格式,可以发现Binary是更非自愿的,无论是在存储的时候还是在读取的时候,都是不如Numeric的,所以如果业务允许的话,还是建议在写入lucene之前就将binary变为numeric,此时更容易存储也更容易读取。

 

看完了之后,其实没什么用,因为现在还没有开始看哪里具体用到了docVlaue,虽然我知道在facet、sort的时候用到了,但是怎么用的还没看,接下来要好好看看solr是如何使用docVlaue的,然后再看看facet对docVlaue的使用。

在看这些格式的过程重,我觉得还是看的比较浅显的,没有像初学lucene时那么严谨,只是看懂了70%吧,很可能有错误,如果有细心的读者发现了,请联系我,我的qq是:1308567317   

2017,戒掉邪淫,让我走上光明的2018.

 

你可能感兴趣的:(lucene,docValue,存储格式)