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 曉宇 閱讀(370) 評論(0)  編輯  收藏 所屬分類: LUCENE

          主站蜘蛛池模板: 固原市| 开阳县| 花莲县| 保靖县| 广饶县| 镶黄旗| 鲁甸县| 怀仁县| 老河口市| 泸水县| 浮梁县| 南丹县| 扶绥县| 张家界市| 牟定县| 遵义县| 梁河县| 增城市| 济阳县| 铜山县| 榆树市| 泾源县| 宜宾市| 东山县| 手游| 大埔县| 奉贤区| 西宁市| 石首市| 历史| 丹巴县| 靖江市| 昆明市| 保德县| 利津县| 甘孜县| 安顺市| 尼勒克县| 武乡县| 上虞市| 盘山县|