csusky

          常用鏈接

          統(tǒng)計(jì)

          最新評(píng)論

          org.apache.lucene.index.SegmentInfos

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

          segments文件的格式:
          int:  =-1         文件是否是Lucene合法的文件格式正常情況下為 -1
          long:             版本號(hào),每更新一次該文件將會(huì)將版本號(hào)加1
          int:                用來命名新段
          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());                //得到用來重命名新段的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ù)雜的訪問和更新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 曉宇 閱讀(367) 評(píng)論(0)  編輯  收藏 所屬分類: LUCENE

          主站蜘蛛池模板: 英德市| 阿图什市| 富蕴县| 山西省| 普宁市| 白山市| 曲阜市| 金沙县| 图木舒克市| 定襄县| 青海省| 德令哈市| 土默特右旗| 杭锦旗| 理塘县| 淮阳县| 绍兴市| 丹东市| 中西区| 始兴县| 德惠市| 黄梅县| 清水河县| 都江堰市| 星子县| 资阳市| 时尚| 太湖县| 玛多县| 沭阳县| 旬邑县| 瓦房店市| 新余市| 南丰县| 孝感市| 红安县| 宜丰县| 富阳市| 财经| 仪陇县| 鱼台县|