Lucene40PostingWriter

控制freq和prox这两个文件的输出,比较简单。

默认skip interval这是16,max skip level这是10.

由源或使用可见VInt编码(而不是速度的传奇PForDelta)。

当存储的文档docid名单delta,假设不存文档频率,是一个delta,存的话假设是1则是(delta << 1) | 1,否则就是两个vint了(delta << 1和termDocFreq)。

最后缓存跳跃表结构。

存位置也类似,只是position是看是否存payload,payloadlength是否和上次一样,offset则是看是否存offset,offsetlength是否也是最后一次。假设有payload,上次写payload。

加分后term,写入跳过表结构(它应该是在tim文件)。

一个段的所有文件,等都加完,来电flushTermsBlock,第一次去RamOutputStream写字典freqStart,proxStart,skipStart信息,最后flush进入tip文件。

原文地址:https://www.cnblogs.com/zfyouxi/p/4569799.html