【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>
SortedSetDocValuesField与SortedDocValuesField类似但它是一键多值的(注意:lucene的数据模型是支持一键多值的即key-values模型),lucene在实现时会判断是一键一值还是多值,如果单值就调用SortedDocValuesField的存储方式(前面已经说过),否则按照多值情况进行存储。存储方式为:
1、写入每个值对应的字典序号;
2、写入过个key对应的值的个数;
3、与SortedDocValuesField一样写入每个字典值;
4、与SortedDocValuesField一样写入字典索引;
总结:就像SortedNumericDocValuesField一样对于这种一键多值的情况,lucene在处理的时候是在一键一值存储的基础上然后按照实际情况额外记录相应的信息实现的,所以有可以复用一键一值的代码。
来源:oschina
链接:https://my.oschina.net/u/1268334/blog/3053819