ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Lucene源码解析--删除文档文件(.del)

Lucene源码解析--删除文档文件(.del)

原创 Linux操作系统 作者:百联达 时间:2013-07-19 11:21:38 0 删除 编辑
如果segment中有被删除的document,则这些信息会被存储在.del文件当中。

.del文件的结构:

Format:在此文件中,Bits 和DGaps 只能保存其中一,-1 表示保存DGaps,非负值表示保存Bits。

ByteCount:此段中有多少文档,就有多少个bit 被保存,但是以byte 形式计数,即Bits 的大小应该是byte 的倍数。

BitCount:Bits 中有多少位被至1,表示此文档已经被删除。

Bits:一个数组的byte,大小为ByteCount,应用时被认为是byte*8 个bit。


DGaps:如果删除的文档数量很小,则Bits 大部分位为0,很浪费空间。DGaps 采用以下的方式来保存稀疏数组:比如第十,十二,三十二个文档被删除,于是第十,
十二,三十二位设为1,DGaps 也是以byte 为单位的,仅保存不为0 的byte,如第1 个byte,第4 个byte,第1 个byte 十进制为20,第4 个byte 十进制为1。于是保存成DGaps,第1 个byte,位置1 用不定长正整数保存,值为20 用二进制保存,第2 个byte,位置4 用不定长正整数保存,用差值为3,值为1 用二进制保存,二进制数据不用差值表示。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/28624388/viewspace-766687/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
10年以上互联网经验,先后从事过制造业,证券业,物业行业和物流行业信息系统和互联网产品的研发,6年系统架构经验。最近关注Kubernetes微服务架构和Istio微服务治理框架。

注册时间:2013-02-05

  • 博文量
    316
  • 访问量
    1008058