lucene4.5源码分析系列:lucene默认索引的文件格式-总述

  学习lucene索引文件格式的目的是通过对lucene数据结构的理解,从而为lucene索引实现打下基础。

索引文件的整体结构

  如下图,这是整个索引文件的整体结构,可以看到,实际上lucene索引保存下了相当多的东西

  

  但是,单从上面的文件罗列,很难看出来一个整体的结构,那么,接下来这张图就向我们展示这个结构,原图来源于网络,但是由于已经过时,我根据lucene最新的版本重新画了一张。如果相对比3.0版就会发现,一些文件后缀也被改变了,比如tis,tii变成新的tim,tip,另外,实际上del文件也没有使用了,究其原因是writer会动态计算被删除的文件,而不是写入文件。


   索引文件中最重要的结构便是倒排索引了,如下图,其中Dictionary就是所有term的集合,放在tim和tip中,而posting list则存放文档id,词频和单词出现的位置,放在pos和doc中,其中doc存放的是词频,pos存放的是单词位置。

 

编解码器

  索引的文件格式有可能会进化,一旦版本更新之后就不能再支持其他的索引文件格式,或者说一个lucene版本只能支持lucene自己的索引势必会降低lucene的灵活性,那么如何保持索引文件格式的灵活性和动态扩展性也是一个值得考虑的问题,lucene采用编解码器(codec)来实现这种灵活性。

  编解码器是lucene中负责与索引文件直接读写的模块。所有的上层调用都基于编解码器,这是代码模块化的结果。我们来看编解码器的一些设计思想。

  首先是LuceneXXCodec,这是Codec的直接实现者,不同的版本可能会实现不

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值