csusky

          常用鏈接

          統計

          最新評論

          org.apache.lucene.index.SegmentInfos

          final class SegmentInfos extends Vector
          可以看出該類實際上是一個Vector   以及封裝了對該Vevtor的一些操作
          實際上封裝的是對segments文件的一些讀寫操作
          先來看下segments文件的格式

          segments文件的格式:
          int:  =-1         文件是否是Lucene合法的文件格式正常情況下為 -1
          long:             版本號,每更新一次該文件將會將版本號加1
          int:                用來命名新段
          int:                段的數目
          String + int  段的信息 String是段的名稱  int是段中所含的doc數目
          String + int  同上

          所以用Lucene的API,我們可以簡單的打印出其segments的所有信息

          try {
             //DataInputStream fis = new DataInputStream(new FileInputStream("C:\\sf\\snow\\segments"));
             FSDirectory dir=FSDirectory.getDirectory("C:/sf/snow", false);
              InputStream input = dir.openFile("segments");
             System.out.println("Format:"+input.readInt());             //得到文件標志,是否為正常的segments文件
             System.out.println("version:"+input.readLong());        //得到版本號
             System.out.println("name:"+input.readInt());                //得到用來重命名新段的int,暫時不知道有什么用
             int n=input.readInt();                                                          //段的數目
             System.out.println("SegmentNum:"+n);                          
             for(int i=0;i<n;i++) {                                                           //用循環打印出所有段的信息 名稱和長度
              System.out.println("segment "+i+" - name:"+input.readString()+" num:"+input.readInt());
             }
            } catch (Exception e) {

            }
          當然,該類提供了更為復雜的訪問和更新segments文件的方法
           final void read(Directory directory)    將所有的段信息保存在本vector中
          final void write(Directory directory)    跟新該segment文件的內容,主要是為了添加段,
          主要是更新 版本號 段的數目,跟新完這些后即可往segment文件后添加新段的信息。

          posted on 2008-04-18 17:02 曉宇 閱讀(367) 評論(0)  編輯  收藏 所屬分類: LUCENE

          主站蜘蛛池模板: 万荣县| 台北县| 普兰店市| 团风县| 沁源县| 曲水县| 深水埗区| 澄迈县| 西乡县| 札达县| 凤庆县| 措勤县| 肥城市| 浦城县| 闸北区| 聂拉木县| 邵阳县| 凤城市| 丰原市| 墨脱县| 依安县| 亚东县| 蓝山县| 霍林郭勒市| 承德市| 腾冲县| 临汾市| 南召县| 和顺县| 潍坊市| 西畴县| 仲巴县| 阿拉善右旗| 灵山县| 区。| 山丹县| 本溪市| 元朗区| 扎囊县| 神农架林区| 陆良县|