lucene数据写入-02倒排数据缓存组织

上面分析了数据写入的代码逻辑,我们现在来看下倒排数据保存在内存中是什么样的

在索引过程中数据会将term分词的长度、将文档号(doc ID),词频(freq)和位置(prox)信息都存储在bytePool中,其中文档号docID和freqs写到一个块中,而位置信息prox会写到另一个块中,块存储有不同的级别,不同的级别长度和分隔符不同。intPool保存了bytePool中保存的docID、freqs和位置信息的偏移量,所以每个分词在intPool中都会使用两个int保存两个偏移量,第0个表示docid + freq在bytePool中的写入位置偏移量,第1个表示prox在bytePool中的写入位置偏移量。

我们以写入一下数据为例分析一下如何记录这些信息

document.add(new TextField("desc", "common common common common common term", Field.Store.YES));
document1.add(new TextField("desc", "common common common common common term term", Field.Store.YES));
document2.add(new TextField("desc", "term term term common common common common common", Field.Store.YES
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值