中文(中国)更改
 
powered by
Hawk Search
Hawk Search

 
分类

 
文章

 
日历

九月 2010
« 四    
 12345
6789101112
13141516171819
20212223242526
27282930  
 
 
Javen-Studio Thinking of Life, Imagination of Future.
NEWS

Annotated Lucene:第三节 索引文件结构(7)

3.2.3.7 Term向量文件

Term向量(vector)的支持是field基本组成中对一个field来说的可选项,它包含如下4种文件:

1. 文档索引或.tvx文件:对每个文档来说,它把偏移(offset)存储进文档数据(.tvd)文件和域field数据(.tvf)文件

版本

包含的项

数目

类型

描述

全部版本

TVXVersion

1

Int

Lucene 2.4中为3 (TermVectorsReader.FORMAT_VERSION2)

DocumentPosition

NumDocs

UInt64

.tvd文件中的偏移

FieldPosition

NumDocs

UInt64

.tvf文件中的偏移

结构如下图所示:

2. 文档或.tvd文件:对每个文档来说,它包含fields的数目,有term向量的fields的列表,还有指向term向量域文件(.tvf)中的域信息的指针列表。该文件用于映射(map out)出那些存储了term向量的fields,以及这些field信息在.tvf文件中的位置。

版本

包含的项

数目

类型

描述

全部版本

TVDVersion

1

Int

Lucene 2.4中为3 (TermVectorsReader.FORMAT_VERSION2)

NumFields

NumDocs

VInt

 

FieldNums

NumDocs

FieldNums

 

 

FieldNums->FieldNumDelta

NumFields

VInt

 

 

FieldPositions

NumDocs

FieldPositions

 

 

FieldPositions->FieldPositionDelta

NumField-1

VLong

 

 

结构如下图所示:

3. 域field或.tvf文件:对每个存储了term向量的field来说,该文件包含了一个term的列表,及它们的频率,还有可选的位置和偏移信息。

版本

包含的项

数目

类型

描述

全部版本

TVFVersion

1

Int

Lucene 2.4中为3 (TermVectorsReader.FORMAT_VERSION2)

NumTerms

NumFields

VInt

 

Position/Offset

NumFields

Byte

 

TermFreqs

NumFields

TermFreqs

 

TermFreqs->TermText

NumTerms

TermText

 

TermText->PrefixLength

NumTerms

VInt

 

TermText->Suffix

NumTerms

String

 

TermFreqs->TermFreq

NumTerms

VInt

 

TermFreqs->Positions?

NumTerms

Positions

 

Positions->Position

TermFreq

VInt

 

TermFreqs->Offsets?

NumTerms

Offsets

 

Offsets->StartOffset

TermFreq

VInt

 

Offsets->EndOffset

TermFreq

VInt

 

 

结构如下图所示:

备注:

  • Positions/Offsets 字节存储的条件是当该term向量含有存储的位置或偏移信息时。
  • Term Text prefixes文本前缀是共享的,表示根据前一个term的文本来初始化的字符串前缀长度,前一个term必须已经预设成后缀文本以便构成该term的文本。比如,如果前一个term为“bone”,而当前term为“boy”,则该PrefixLength值为2,suffix值为“y”。
  • Positions存储为Delta编码的VInts,意思是我们只能存储当前位置与最后位置的差值。
  • Offsets存储为Delta编码的VInts,第一个VInt是startOffset,第二个VInt是endOffset。

发表评论