建立索引文件(2)

Segment文件:

在随笔“Lucene:(一)建立索引文件:2。建立索引文件(一)”中提到,写索引文件从IndexWriter类开始;而IndexWriter类写索引可以看成两个方面,其中之一为IndexWriter使用SegmentInfos类写segment文件。

Segment文件实际可以看成索引的概述文件,包括了所有用于建立索引的文件的概述信息。Segment类,即Segment文件中记载的信息单元。可以理解成,SegmentInfos将众多segment信息综述在一起,写入文件。

 

<!--[if !supportLists]-->1.SegmentInfo<!--[endif]-->类:

public String name;  //segment文件的名称(记录其他信息的文件与它同名)

public int docCount; //segment文件中的拥有的文件数目,即该索引文件记录的文件数目

public Directory dir;// segment文件存放的字典

 

<!--[if !supportLists]-->2.SegmentInfos<!--[endif]-->类:

SegmentInfos类,用于读写块信息,物理磁盘中的块文件的后缀名为segments

:wanghoney. segments;

 

块文件的格式如下:

<ul>

    <li>Format,索引文件的版本,Lucene有多个版本了,int</li>

<li>version,多久前索引文件被adding or deleting文件,long</li>

<li>

counter,segment文件的个数+1,因为segment的建立是从1开始,没多出现一个,命名就为前一个的名字加1,所以counter可看成是下一个segment文件应起的名字,int

</li>

<ul>每个segment文件的信息,共有counter-1

   <li>segmentInfo中的name</li>

   <li> segmentInfo中的docCount </li>

</ul>

</ul>

 

注意:并不是每个版本的segment文件都有format,version等信息的,早先版本没有。

 

实现:

SegmentInfos继承于Vector类,因此它有Vector的特性;SegmentInfos类,其实将SegmentInfos类操作的所有SegmentInfo信息装入Vector;读是从文件中读入SegmentInfo中,再装入到Vector中;写是从Vector中往文件中写。

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值