• Lucene:(一)建立索引文件:2。建立索引文件(二)Segment文件


    Segment文件:

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

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

     

    1.SegmentInfo类:

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

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

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

     

    2.SegmentInfos类:

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

    :wanghoney. segments;

     

    块文件的格式如下:

    <ul>

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

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

    <li>

    countersegment文件的个数+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中往文件中写。

  • 相关阅读:
    WireShark抓包软件的使用
    UNIX环境高级编程--#include "apue.h"
    用OpenCV实现Otsu算法
    Qt使用快捷键
    Ubuntu14.04如何备份和恢复系统
    Linux命令--链接文件的那些事
    Python读写csv文件
    Python正则表达式指南
    Linux下使用rsync最快速删除海量文件的方法
    性能监控工具——Cacti安装文档
  • 原文地址:https://www.cnblogs.com/wanghoney/p/1237757.html
Copyright © 2020-2023  润新知