<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 17  文章 - 84  trackbacks - 0
    <2007年6月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    如非特別說明,所有文章均為原創(chuàng)。如需引用,請注明出處
    Email:liangtianyu@gmail.com
    MSN:terry.liangtianyu@hotmail.com

    常用鏈接

    留言簿(4)

    隨筆分類(12)

    隨筆檔案(17)

    最新隨筆

    搜索

    •  

    積分與排名

    • 積分 - 51837
    • 排名 - 960

    最新評論

    閱讀排行榜

    評論排行榜

      Lucene 2.10索引文件:

    Term:項。為分詞后最小單位,具體和使用的分析器有關(guān),Lucene內(nèi)置為單字。

    Field:域。相當(dāng)于數(shù)據(jù)庫表的字段。

    Document:文檔。域信息的集合。

    Segment:段。一個完整定1索引。

     

    文件名稱

    后綴名稱

    說明

    segments_N

     

    段,表示一個完整獨立的索引;N36進(jìn)制數(shù)

    segments

    .gen

    segments輔助文件,主要用來生成計數(shù)

    SegmentName

    .fnm

    域集合信息文件

    SegmentName

    .fdt

    域值信息文件

    SegmentName

    .tis

    項信息文件

    SegmentName

    .tii

    項信息索引文件

    SegmentName

    .frq

    項頻數(shù)文件

    SegmentName

    .prx

    項位置信息文件

    SegmentName

    nrm

    標(biāo)準(zhǔn)化因子文件

    SegmentName

    .tvx

    文檔信息索引文件

    SegmentName

    .tvd

    文檔信息文件

    SegmentName

    ..tvf

    每個域項向量信息文件

    備注

    SegmentName_NN36進(jìn)制數(shù)


    一.          
    Lucene原始存儲數(shù)據(jù)類型(Primitive Types

     

    類型名稱

    說明

    Byte

    8 byte

    UInt32

    32 byte四字節(jié)無符號整型,高位優(yōu)先

    UInt64

    64byte八字節(jié)無符號整型,高位優(yōu)先

    VInt

    可變長度整型。0-127單字節(jié),128-16383兩字節(jié),類推

    Chars

    UNICODE字符串

    String

    寫入格式為:VIntChars,字符串長度加字符串

     

    二.           Lucene索引文件

    1.  Segments

    文件名稱:segments_NN36進(jìn)制數(shù)。

     

    說明:在一個索引目錄中,至少存在一個Segments文件,但可索引活動的只會有一個:N值最大的。其他的Segments文件可能為臨時文件,一般情況是索引修改進(jìn)程沒有完成。

     

    格式:FormatVersionNameCounterSegCount<SegNameSegSizeDelGenHasSingleNormFileNumFieldNormGenNumFieldIsCompoundFile>SegCount

    FormatNameCounterSegCountSegCountSegSizeNumFieldUInt32

    VersionDelGenNormGenUInt64

    SegNameString

    IsCompoundHasSingleNormFileByte

     

    格式說明:Format = SegmentInfos.FORMAT_SINGLE_NORM_FILE = -2Version當(dāng)前時間與UTC時間的差值的毫秒數(shù),每次對索引進(jìn)行修改時會變化;SegName是所有索引生成文件的前綴;SegSize是當(dāng)前Segment中包含的Document的數(shù)量;

     

    示例:

    FF FF FF FDFOMAT = -2UInt32

    00 00 01 13 29 30 B6 33Version = 1181807064627UInt64

    00 00 00 01NameCount = 1UInt32

    00 00 00 01SegmentCount = 1UInt32

    02SegmentNamePrefixLength = 2VInt

    5F 30SegmentName = _0Chars

    00 00 00 01SegSize = 1UInt32

    FF FF FF FF FF FF FF FFDelGen = -1UInt64

    01HasSingleNormFile = 1Byte

    FF FF FF FFNumField = -1UInt32

    FFIsCompoundFile = -1Byte

     

    2.1版本中還會生成segment.gen文件,主要保存了索引計數(shù),格式為:VersionSegmentInfos.LOCKLESS = -2),GenerationGeneration

     

    示例:

     

    FF FF FF FEVersion = -2UInt32

    00 00 00 00 00 00 00 02Generation = 2UInt64

    00 00 00 00 00 00 00 02Generation = 2UInt64

     

    2.  Field Info

    文件名稱:SegmentName.fnm

     

    說明:保存了所有Field的名稱。

     

    格式:FieldCount<FieldNameFieldBits>FieldCount

    FieldCountVInt

    FieldNameString

    FieldBitsByte

     

    格式說明:

     

    示例:

     

    01FieldCount = 1VInt

    04FieldNamePrefixLength = 4VInt

    49 6E 66 6FFieldName = Info”,Chars

    01Bits = 1Byte

     

    3.  Stored Field Index

    文件名稱:SegmentName.fdx

     

    說明:保存了每個DocumentField Data的地址指針

     

    格式:<FieldValuesPosition>SegSize

    FieldValuesPositionUInt64

     

    格式說明:

     

    示例:

     

    00 00 00 00 00 00 00 00FieldValuesPosition = 0UInt64

     

    4.  Stroed Field Data

    文件名稱:SegmentName.fdt

     

    說明:保存了每個Document的需要存儲的Field數(shù)據(jù)。

     

    格式:<DocFieldData>SegSize

    DocFieldDataFieldCount<FieldNumBitsValue>FieldCount

    FieldCountVInt

    FieldNumVint

    BitsByte

    ValueString | BinaryValue(取決于Bits

    BinaryValueValueSize<Byte>^ValueSize

    ValueSizeVInt

     

    格式說明:

     

    示例:

     

    01FieldCount = 1VInt

    00FieldNum = 0VInt

    01Bits = 1Byte

    17FieldValuePrefixLength = 23VInt

    49 20 77 72 69 74 65 20 61 20 6C 65 74 74 65 72 20 6C 65 74 74 65 72Value = I write a letter letter”,Chars

     

    5.  Term Info Index

    文件名稱:SegmentName.tii

     

    說明:保存了所有Term Inofs.its)文件的索引間隔條目。

     

    格式:TIVersionIndexTermCountIndexIntervalSkipIntervalaMaxSkipLevelsTermIndices

    TIVersionUInt32

    IndexTermCountUInt64

    IndexIntervalUInt32

    SkipIntervalUInt32

    TermIndeices<TermInfoIndexDelta>IndexTermCount

    IndexDeltaVInt

     

    格式說明:

     

    示例:

     

    FF FF FF FETIVersion = -2UInt32

    00 00 00 00 00 00 00 01TermCount = 1UInt64

    00 00 00 08IndexInterval = 128UInt32

    00 00 00 10SkipInterval = 16UInt32

    00MaxSkipLevels = 0Byte

     

    6.  Term Infos

    文件名稱:SegmentName.tis

     

    說明:存儲了所有Term的信息。

     

    格式:TIVersionIndexTermCountIndexIntervalSkipIntervalaMaxSkipLevelsTIVersionUInt32

    IndexTermCountUInt64

    IndexIntervalUInt32

    SkipIntervalUInt32

    MaxSkipLevelsVInt

    TermInfos<TermDocFreqFreqDeltaProxDeltaSkipDelta>TermCount

    Term<PriefixLengthSuffixFieldNum>

     

    格式說明:Term按照字典順序排序;Term的內(nèi)容是可以共享的。例如:上一個Term為“bone”,當(dāng)前Term為“boy”,則當(dāng)前的TemrPrefixLength2Suffix為“y”。

     

    示例:

     

    FF FF FF FETIVersion = -2UInt32

    00 00 00 00 00 00 00 01TermCount = 1UInt64

    00 00 00 08IndexInterval = 128UInt32

    00 00 00 10SkipInterval = 16UInt32

    00MaxSkipLevels = 0Byte

    01TermTextPrefixLength = 1VInt

    69TermText = i”,Chars

    00FieldNumber = 0VInt

    01DocFreq = 1VInt

    00FreqDelta = 0VInt

    00ProxDelta = 0VInt

    00SkipDelta = 0Vint

     

    以下Term類似

     

    7Frequencies File

    文件名稱:SegmentName.frq

     

    說明:

     

    格式:

     

    格式說明:

     

    示例:

     

    8. Positions File

    文件名稱:SegmentName.prx

     

    說明:保存了每個TermDocument中的位置集合。

     

    格式:

     

    格式說明:

     

    示例:

     

    9.TermVectors Iindex File

    文件名稱:SegmentName.tvx

     

    說明:保存了在.tvd中的文檔數(shù)據(jù)的指針。

     

    格式:TVXVersion<DocumentPosition>NumDocs

    TVXVersionUInt32

    DcoumentPositionUInt64

     

    格式說明:

     

    示例:

     

    00 00 00 02TVXVersion = 2UInt32

    00 00 00 00 00 00 00 04DocumentPosition = 4UInt64

     

     

    10.Term Vectors Document

    文件名稱:SegmentName.tvd

     

    說明:

     

    格式:TVDVersion<NumFieldsFieldNumsFieldPositions>NumDocs

    TVDVersionUInt32

    NumFieldsVInt

    FieldNums<FieldNumDelta >NumFields

    FieldPositionVInt

     

    格式說明:

     

    示例:

     

    00 00 00 02TVDVersion = 2UInt32

    01NumFields = 1VInt

    00FieldNumDelta = 0VInt

    04FieldPosition = 4VInt

     

    11.Term Vectors Field

    文件名稱:SegmentName.tvf

     

    說明:

     

     

    格式:TVFVersion<NumTermsPosition/OffsetTermFreqs>NumFields

    TVFVersionUInt32

    NumTermsVInt

    Position/OffsetByte

    TermFreqs<TermTextTermFreqPositions/Offsets>NumTerms

    TermText<PrefixLengthSuffix>

    PrefixLengthVInt

    SuffixChars

    TermFreqVInt

    Position<VInt>TermFreq

    Offsets<VIntVInt>TermFreq

     

    格式說明:

     

    示例:

     

    00 00 00 02TVFVersion = 2UInt32

    03NumTerms = 3VInt

    00

    00

    01TermTextPrefixLength = 1VInt

    69TermText = i”,Chars

    01TermFreq = 1VInt

    00Position/Offset = 0VInt

    06TermTextPrefixLength = 6VInt

    6C 65 74 74 65 72TextText = letter”,VInt

    02TermFreq = 2VInt

    00Position/Offset = 0VInt

    05TermTextPrefixlength = 5VInt

    77 72 69 74 65TermText = write”,Chars

    01Position/Offset = 1VInt

     

    12.Compound File

    文件名稱:SegmentName.cfs

     

    說明:當(dāng)采用復(fù)合文件建立索引時,所有索引文件會保存在一個.cfs文件內(nèi)。

     

    格式:FileCount<DataOffsetFileName>FielCountFileDataFielCount

    FielCountVInt

    DataOffsetUInt64

    FileNameString

    FielData:文件原始數(shù)據(jù)(raw file data

     

    格式說明:

     

    示例:

     

    0BFileCount = 8VInt

    00 00 00 00 00 00 00 A6DataOffset = 166UInt64

    06FileNamePrefixLength = 6VInt

    5F 30 2E 66 6E 6DFileName = _0.fnm”,Chars

    根據(jù)文件數(shù)據(jù)偏移量(DataOffset 166,可以知道字段信息文件(Field Info)“_0.fnm”的數(shù)據(jù)存儲起始位置在167處。其他文件類
    posted on 2007-06-14 14:45 Terry Liang 閱讀(2505) 評論(3)  編輯  收藏 所屬分類: Lucene 2.1研究

    FeedBack:
    # re: Lucene 2.1研究:文件存儲 2007-06-15 08:56 good
    good.............  回復(fù)  更多評論
      
    # re: Lucene 2.1研究:文件存儲 2007-06-16 01:11 geszjava
    thanks  回復(fù)  更多評論
      
    # re: Lucene 2.1研究:文件存儲 2007-08-13 14:38 web
    兄臺,我對lucene的高位優(yōu)先一直沒有搞太明白,是否數(shù)據(jù)先寫到高位,高位被占滿然后再寫低位呢?

    DocumentWriter.java 里面有這段代碼:

    if (f == 1) // optimize freq=1
    freq.writeVInt(1); // set low bit of doc num.
    else {
    freq.writeVInt(0); // the document number
    freq.writeVInt(f); // frequency in doc
    }

    想知道最后寫出來的結(jié)果是啥樣子的。
    萬望指教,謝謝!

    還有l(wèi)ucene里面的文檔號是遞增的,請問是在什么地方體現(xiàn)的呢?

      回復(fù)  更多評論
      
    主站蜘蛛池模板: 亚洲AV男人的天堂在线观看| 色婷婷亚洲一区二区三区| 亚洲av乱码中文一区二区三区| yellow视频免费看| 成年人免费的视频| 亚洲色偷拍区另类无码专区| 亚洲国产美女精品久久| 日本激情猛烈在线看免费观看| 69精品免费视频| 亚洲精品成人久久久| 亚洲国产美女精品久久| 久久免费香蕉视频| 成人看的午夜免费毛片| 亚洲av无码一区二区三区不卡| 亚洲妇女无套内射精| 99久久人妻精品免费一区| 亚洲精品无码永久在线观看 | 亚洲午夜成人精品无码色欲| 国产久爱免费精品视频| 全免费a级毛片免费看无码| 亚洲AV无码专区电影在线观看| 香港一级毛片免费看| 99久久免费国产精品特黄| 亚洲高清国产AV拍精品青青草原| 亚洲av永久中文无码精品综合 | 午夜一级免费视频| 亚洲五月六月丁香激情| 一区二区三区视频免费观看| 成年女性特黄午夜视频免费看 | 午夜不卡久久精品无码免费| 亚洲国产精品综合久久网络 | 99久久综合精品免费| 国产亚洲精午夜久久久久久| 亚洲AV永久无码精品放毛片| 亚洲一区二区免费视频| 久久亚洲国产欧洲精品一| 一级特黄特色的免费大片视频 | 国产免费拔擦拔擦8x| 亚洲精品国产精品国自产网站| 久久午夜夜伦鲁鲁片无码免费| 亚洲精品国产福利一二区|