csusky

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          org.apache.lucene.index.SegmentInfos

          final class SegmentInfos extends Vector
          可以看出該類實(shí)際上是一個(gè)Vector   以及封裝了對(duì)該Vevtor的一些操作
          實(shí)際上封裝的是對(duì)segments文件的一些讀寫操作
          先來(lái)看下segments文件的格式

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

          所以用Lucene的API,我們可以簡(jiǎn)單的打印出其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());             //得到文件標(biāo)志,是否為正常的segments文件
             System.out.println("version:"+input.readLong());        //得到版本號(hào)
             System.out.println("name:"+input.readInt());                //得到用來(lái)重命名新段的int,暫時(shí)不知道有什么用
             int n=input.readInt();                                                          //段的數(shù)目
             System.out.println("SegmentNum:"+n);                          
             for(int i=0;i<n;i++) {                                                           //用循環(huán)打印出所有段的信息 名稱和長(zhǎng)度
              System.out.println("segment "+i+" - name:"+input.readString()+" num:"+input.readInt());
             }
            } catch (Exception e) {

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

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

          主站蜘蛛池模板: 思南县| 班戈县| 罗江县| 定州市| 鄂尔多斯市| 东乌| 磐石市| 桂东县| 汉沽区| 象山县| 龙口市| 富锦市| 米泉市| 墨竹工卡县| 马公市| 岳阳市| 利辛县| 河西区| 阆中市| 朝阳市| 元江| 高要市| 伊春市| 蓬安县| 大同县| 射洪县| 民和| 乌审旗| 高密市| 万山特区| 丰镇市| 高淳县| 南阳市| 甘洛县| 永宁县| 通辽市| 沧源| 商南县| 玉溪市| 长寿区| 绵竹市|