Lucene 4.0 DocumentsWriterPerThread

首先有个IndexinngChain的类通过getChain拿到DocConsumer做文档在内存中的创建索引工作(最外层是DocFieldProcessor),几个接口:

1.updateDocument时实际调用的是:

consumer.processDocument(fieldInfos) => consumer.finishDocument(fieldInfos) => finishDocument(delTerm)

这里finishDocument做了一堆堆del队列和buffer的操作,还不是很明白。

2.deleteDocID仅在更新文档失败时调用

3.prepareFlush拿到FrozenBufferedDeletes,不是很明白

4.flush除了对delete的相关操作外就是准备好SegmentWriteState,调用consumer.flush,最后返回FlushedSegment, 这一步应该不会把del和cfs写入

5.sealsFlushedSegment会写入cfs文件,然后写入del文件

脉络是比较清晰的,但是要理解其中的做法,还要读一下DocumentsWriterDeleteQueue,然后是DocFieldProcessor。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值