lucene索引文件格式-segment文件

SegmentInfos

segmentInfo對(duì)象的集合,其中包含用于與文件系統(tǒng)相關(guān)的段進(jìn)行操作的方法。

索引中的活動(dòng)段存儲(chǔ)在段信息文件 segments_N中,索引中可能有一個(gè)或多個(gè)segments_N文件,但是具有最大值的那個(gè)是有效的段信息文件(當(dāng)存在較舊的segments_N文件時(shí),因?yàn)樗鼈儠簳r(shí)無法刪除,或者,writer正在提交,或者正在使用自定義 IndexDeletionPolicy)。此文件按名稱列出每個(gè)段,并包含有關(guān)編解碼器和刪除的generation的詳細(xì)信息。

還有一個(gè)segments.gen文件,該文件包含當(dāng)前索引的generation(segments_N中的N)。這僅用作備用,以防單獨(dú)的目錄列表無法準(zhǔn)確確定當(dāng)前的generation(對(duì)于某些具有基于時(shí)間的目錄緩存到期的NFS客戶端的情況)。此文件簡(jiǎn)單地包含一個(gè) Int32版本Header( FORMAT_SEGMENTS_GEN_CURRENT),接著的是以Int64格式寫入兩次的generation

文件:
  • segments.gen: GenHeader, Generation, Generation, Footer
  • segments_N: Header, Version, NameCounter, SegCount, <SegName, SegCodec, DelGen, DeletionCount, FieldInfosGen, DocValuesGen, UpdatesFiles>SegCount, CommitUserData, Footer
數(shù)據(jù)類型:
  • Header --> CodecHeader
  • GenHeader, NameCounter, SegCount, DeletionCount --> Int32
  • Generation, Version, DelGen, Checksum, FieldInfosGen, DocValuesGen --> Int64
  • SegName, SegCodec --> String
  • CommitUserData --> Map<String,String>
  • UpdatesFiles --> Map<Int32, Set<String>>
  • Footer --> CodecFooter
字段描述:
  • Version計(jì)數(shù)通過添加或刪除文檔來更改索引的頻率.
  • NameCounter用于為新段文件生成名稱
  • SegName是段的名稱,并用作組成段索引的所有文件的文件名前綴。
  • DelGen是刪除文件的generation計(jì)數(shù)。如果這是-1,則沒有刪除。大于零的任何值意味著存儲(chǔ)了刪除的LiveDocsFormat
  • DeletionCount記錄此段中已刪除文檔的數(shù)量
  • SegCodec是編碼此段的解碼器的名稱
  • CommitUserData存儲(chǔ)用戶提供的可選的不透明Map <String,String>傳遞給IndexWriter.setCommitData(java.util.Map).
  • FieldInfosGen是fieldInfos文件的generation計(jì)數(shù)。如果為-1,則該段中的fieldInfos沒有更新,大于零的任何值意味著存儲(chǔ)的fieldInfos都有更新
  • DocValuesGen是可更新DocValues的生成計(jì)數(shù)。如果為-1,則該段中的DocValues沒有更新。大于零的任何意味著存儲(chǔ)的DocValues都有更新
  • DocValuesGen是可更新DocValues的generation計(jì)數(shù)。如果為-1,則該段中的DocValues沒有更新。大于零的任何意味著存儲(chǔ)的DocValues都有更新
  • UpdatesFiles存儲(chǔ)每個(gè)字段在該段中更新的文件集

Lucene40SegmentInfoFormat

文件:
  • .si: Header, SegVersion, SegSize, IsCompoundFile, Diagnostics, Attributes, Files
數(shù)據(jù)類型:
  • Header --> CodecHeader
  • SegSize --> Int32
  • SegVersion --> String
  • Files --> Set<String>
  • Diagnostics, Attributes --> Map<String,String>
  • IsCompoundFile --> Int8
字段描述:
  • SegVersion是創(chuàng)建的段的代碼版本。
  • SegSize是段索引中包含的文檔數(shù)
  • IsCompoundFile記錄段是否寫為復(fù)合文件。如果為-1,則該段不是復(fù)合文件。如果為1,則段是復(fù)合文件。
  • Checksum 包含segments_N文件中所有字節(jié)的CRC32校驗(yàn)和,這用于在打開索引時(shí)驗(yàn)證文件的完整性
  • Diagnostics Map由其IndexWriter創(chuàng)建的每個(gè)段作為調(diào)試輔助工具私密編寫。它包括元數(shù)據(jù),如當(dāng)前的Lucene版本,操作系統(tǒng),Java版本,創(chuàng)建段的原因(merge,flush,addIndexes)等。
  • Attributes:編解碼器 - 私有屬性的鍵值映射
  • Files 是此段引用的文件列表
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容