lucene索引结构(一)--segment元数据信息

本文深入探讨Lucene的索引结构,重点关注Segment元数据信息,包括Format、NameCounter、SegCount、SegSize等关键字段,以及DelGen、NormGen等版本信息。同时,解释了Diagnostics、IsCompoundFile等相关属性,揭示了Lucene如何存储和管理文档信息。
摘要由CSDN通过智能技术生成
今天起开始深入分析Lucene 3的索引结构。那就从最初步的段索引开始搞吧。
1. 建立索引
开始分析之前必须要创建索引,这里图省事啦,也没有去网上找什么文档集。直接拿lucene的doc来索引的,这是一堆html的文件,


这里只索引了文件的路径、最后修改时间和内容。
  doc.add(new Field( "path", f.getPath(), Field.Store.YES, Field.Index.NOT_ANALYZED ));
  doc.add(new Field("modified",
     	DateTools. timeToString(f.lastModified(), DateTools.Resolution.MINUTE ),
        Field.Store. YES, Field.Index. NOT_ANALYZED));
  BufferedReader br = new BufferedReader(read);
  doc.add(new Field("contents", br));

2.索引文件
经过索引之后得到的文件如下。



在建索引的程序中,必须要调用

writer.setUseCompoundFile( false);
否则只能得到segment文件和.cfs文件。
.cfs文件实际上是一个虚拟文件,它将.fdt,.fdx,.fnm,frq,.nrm,.prx,.tii,.tis等等文件打包成了一个单一文件。
因为随着系统的不断运行,索引文件会越变越多,需要同时打开多个文件句柄,在一些文件系统中会导致文件句柄不够用,而打包成复合文件后,可以缓解这种情况。
这是官方文档对.cfs文件的解释," An optional "virtual" file consisting of all the other index files for systems that frequently run out of file handles. "
为了方便分析,这里将默认生成复合文件关闭。
3.segments.gen文件分析
3.1 作用
要说清楚segments.gen的作用,就必须先说Lucene是怎么在多个segments_N中进行选择的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值