<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免费 | 日本免费在线中文字幕| 亚洲成在人线电影天堂色| 国产乱子伦精品免费无码专区| 三级黄色在线免费观看| 亚洲国产精品免费观看| 亚洲AV无码乱码在线观看牲色| 蜜桃成人无码区免费视频网站| 亚洲欧洲无码AV不卡在线| 在线观看亚洲成人| 最新仑乱免费视频| 国产精品免费一区二区三区四区| 亚洲日韩看片无码电影| 亚洲AV无码久久| 免费大片黄手机在线观看| 日日麻批免费40分钟日本的| 一区二区三区在线观看免费 | 亚洲av无码片vr一区二区三区| 国产精一品亚洲二区在线播放 | 亚洲女同成av人片在线观看| 午夜毛片不卡高清免费| 亚洲欧洲免费视频| 一区二区三区免费视频网站| 亚洲成人免费电影| 亚洲高清国产拍精品26U| 亚洲AⅤ无码一区二区三区在线 | 亚洲s码欧洲m码吹潮| 久久久久亚洲AV无码网站| 亚洲国产精品一区二区三区久久| 国产麻豆视频免费观看| 鲁丝片一区二区三区免费| 免费无码AV一区二区| 亚洲一卡2卡3卡4卡5卡6卡 | 亚洲综合一区无码精品| 亚洲日韩国产精品无码av| 亚洲国产精品高清久久久| 久久久无码精品亚洲日韩软件 | 宅男666在线永久免费观看| 美女视频黄的全免费视频| 99爱免费观看视频在线|