Lucene:(一)建立索引文件:1。复合文件

Lucene索引复合文件

        Lucene 的索引文件有多个文件组成,包括记载域信息的文件、segment信息的文件、term信息的文件;Lucene将这些文件复合起来存储;
    

     这里将阐述以下概念:

Directory:索引字典,Lucene自定义概念,如同现实中的字典存放词语一样,该字典存放文件;字典的操作包括向字典中添加文件,删除文件等。

合并后的文件这里称为复合文件。

文件在复合文件中有两处表示形式:一处为字典中的文件结构体,一处为文件数据;见下文中复合文件的格式。这里称复合文件中的各个文件有两种称谓,一种文件结构体,一种文件数据;

文件还有一种表示形式FileEntry,记载复合文件中的信息;

     
     复合文件的格式:

CompoundFileWriter文件将记载各种信息的索引文件写成一个复合文件,格式如下:

<ul>

   <li>各种索引文件数目n</li>

   <li>字典,字典中一共有n个文件结构体,代表各种索引文件,正好n

       <ul>

           <li>文件数据在复合文件中的位移</li>

           <li>文件名</li>

</ul>

</li>

<li>文件数据,真正的文件数据,n个文件合并后的数据,与字典中的n个结构体对应</li>

</ul>


实现方法:

FileEntry:记载复合文件中各个文件的信息

String file;文件的名字

long directoryOffset;文件结构体中该文件在复合文件中的位移;

long dataOffset; 文件数据中该文件在复合文件中的位移;

写复合文件:

先写文件个数;接着,三个循环,每个循环写n个文件相应信息;

第一个循环:

  写复合文件的文件结构体;注意,这里的文件数据在复合文件中的位移暂且为0,且将复合文件中的文件结构体的位移记录写到FileEntrydirectoryOffset中,这样是为了重写使用;

第二个循环:

  写文件数据,同时将文件在复合文件中的位移记录到FileEntrydataOffset中;

第三个循环:

  重写复合文件中文件结构体的文件数据在复合文件中的位移信息;通过FileEntry中信息来写,这里有复合文件中文件结构体在复合文件中的位移和复合文件中的文件数据在复合文件中的位移。

 


转载于:https://www.cnblogs.com/wanghoney/archive/2008/06/30/1232213.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值