lucene文件格式待整理

这是之前Lucene3.0生成的索引格式

a表

b表

c.这是网上找的图片(因为上面的两张表的segment都是合并了的)

lucene文件格式待整理

 

lucene4.9 建立的索引:

 

    索引(Index):
        在Lucene中一个索引是放在一个文件夹中的。
        如上图,同一文件夹中的所有的文件构成一个Lucene索引。
    段(Segment):
        一个索引可以包含多个段,段与段之间是独立的,添加新文档可以生成新的段,不同的段可以合并。
        如上图,具有相同前缀文件的属同一个段,图中共两个段 "_0" 和 "_1"。
        segments.gen和segments_5是段的元数据文件,也即它们保存了段的属性信息。
    文档(Document):
        文档是我们建索引的基本单位,不同的文档是保存在不同的段中的,一个段可以包含多篇文档。
        新添加的文档是单独保存在一个新生成的段中,随着段的合并,不同的文档合并到同一个段中。
    域(Field):
        一篇文档包含不同类型的信息,可以分开索引,比如标题,时间,正文,作者等,都可以保存在不同的域里。
        不同域的索引方式可以不同,在真正解析域的存储的时候,我们会详细解读。
    词(Term):
        词是索引的最小单位,是经过词法分析和语言处理后的字符串。

  • Segment info. This contains metadata about a segment, such as the number of documents, what files it uses,
  • Field names. This contains the set of field names used in the index.
  • Stored Field values. This contains, for each document, a list of attribute-value pairs, where the attributes are field names. These are used to store auxiliary information about the document, such as its title, url, or an identifier to access a database. The set of stored fields are what is returned for each hit when searching. This is keyed by document number.
  • Term dictionary. A dictionary containing all of the terms used in all of the indexed fields of all of the documents. The dictionary also contains the number of documents which contain the term, and pointers to the term's frequency and proximity data.
  • Term Frequency data. For each term in the dictionary, the numbers of all the documents that contain that term, and the frequency of the term in that document, unless frequencies are omitted (IndexOptions.DOCS_ONLY)
  • Term Proximity data. For each term in the dictionary, the positions that the term occurs in each document. Note that this will not exist if all fields in all documents omit position data.
  • Normalization factors. For each field in each document, a value is stored that is multiplied into the score for hits on that field.(这个值里面存储了一个当你命中它的时候的一个打分)
  • Term Vectors. For each field in each document, the term vector (sometimes called document vector) may be stored. A term vector consists of term text and term frequency. To add Term Vectors to your index see the Field constructors
  • Per-document values. Like stored values, these are also keyed by document number, but are generally intended to be loaded into main memory for fast access. Whereas stored values are generally intended for summary results from searches, per-document values are useful for things like scoring factors.
  • Deleted documents. An optional file indicating which documents are deleted.

 

文件格式对应缩写  

.fdt   field data

.fdx   field index 

.fnm  field name  This contains the set of field names used in the index 索引立面的域名

.frq   frequencies

.nrm  norms

.prx  ProxFile

.tii    term info index

.tis   term infos

.si    Segment info This contains metadata about a segment, such as the number of documents, what files it uses

        段的元数据,如此段的文档数及应用的相关文件

segments.gen             

segments_N

 

所谓正向信息:

  • 按层次保存了从索引,一直到词的包含关系:索引(Index) –> 段(segment) –> 文档(Document) –> 域(Field) –> 词(Term)
  • 也即此索引包含了那些段,每个段包含了那些文档,每个文档包含了那些域,每个域包含了那些词。
  • 既然是层次结构,则每个层次都保存了本层次的信息以及下一层次的元信息,也即属性信息,比如一本介绍中国地理的书,应该首先介绍中国地理的概况, 以及中国包含多少个省,每个省介绍本省的基本概况及包含多少个市,每个市介绍本市的基本概况及包含多少个县,每个县具体介绍每个县的具体情况。
  • 如上图,包含正向信息的文件有:

所谓反向信息:

  • 保存了词典到倒排表的映射:词(Term) –> 文档(Document)
  • 如上图,包含反向信息的文件有:

 

你可能感兴趣的:(Lucene)