美文网首页
lucene索引文件格式-segment文件

lucene索引文件格式-segment文件

作者: 尹亮_36cd | 来源:发表于2019-04-18 17:11 被阅读0次

    SegmentInfos

    segmentInfo对象的集合,其中包含用于与文件系统相关的段进行操作的方法。

    索引中的活动段存储在段信息文件 segments_N中,索引中可能有一个或多个segments_N文件,但是具有最大值的那个是有效的段信息文件(当存在较旧的segments_N文件时,因为它们暂时无法删除,或者,writer正在提交,或者正在使用自定义 IndexDeletionPolicy)。此文件按名称列出每个段,并包含有关编解码器和删除的generation的详细信息。

    还有一个segments.gen文件,该文件包含当前索引的generation(segments_N中的N)。这仅用作备用,以防单独的目录列表无法准确确定当前的generation(对于某些具有基于时间的目录缓存到期的NFS客户端的情况)。此文件简单地包含一个 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
    数据类型:
    • 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计数通过添加或删除文档来更改索引的频率.
    • NameCounter用于为新段文件生成名称
    • SegName是段的名称,并用作组成段索引的所有文件的文件名前缀。
    • DelGen是删除文件的generation计数。如果这是-1,则没有删除。大于零的任何值意味着存储了删除的LiveDocsFormat
    • DeletionCount记录此段中已删除文档的数量
    • SegCodec是编码此段的解码器的名称
    • CommitUserData存储用户提供的可选的不透明Map <String,String>传递给IndexWriter.setCommitData(java.util.Map).
    • FieldInfosGen是fieldInfos文件的generation计数。如果为-1,则该段中的fieldInfos没有更新,大于零的任何值意味着存储的fieldInfos都有更新
    • DocValuesGen是可更新DocValues的生成计数。如果为-1,则该段中的DocValues没有更新。大于零的任何意味着存储的DocValues都有更新
    • DocValuesGen是可更新DocValues的generation计数。如果为-1,则该段中的DocValues没有更新。大于零的任何意味着存储的DocValues都有更新
    • UpdatesFiles存储每个字段在该段中更新的文件集

    Lucene40SegmentInfoFormat

    文件:
    • .si: Header, SegVersion, SegSize, IsCompoundFile, Diagnostics, Attributes, Files
    数据类型:
    • Header --> CodecHeader
    • SegSize --> Int32
    • SegVersion --> String
    • Files --> Set<String>
    • Diagnostics, Attributes --> Map<String,String>
    • IsCompoundFile --> Int8
    字段描述:
    • SegVersion是创建的段的代码版本。
    • SegSize是段索引中包含的文档数
    • IsCompoundFile记录段是否写为复合文件。如果为-1,则该段不是复合文件。如果为1,则段是复合文件。
    • Checksum 包含segments_N文件中所有字节的CRC32校验和,这用于在打开索引时验证文件的完整性
    • Diagnostics Map由其IndexWriter创建的每个段作为调试辅助工具私密编写。它包括元数据,如当前的Lucene版本,操作系统,Java版本,创建段的原因(merge,flush,addIndexes)等。
    • Attributes:编解码器 - 私有属性的键值映射
    • Files 是此段引用的文件列表

    相关文章

      网友评论

          本文标题:lucene索引文件格式-segment文件

          本文链接:https://www.haomeiwen.com/subject/ccdowqtx.html