Term索引信息:
DocumentWriter类写Field信息和Term信息。Field索引信息是调用FieldInfos和FieldWriter两个类完成的,这在上一节已经描述。Term索引信息则由DocumentWriter类和其他类共同完成。DoucmentWriter类完成了term的频数和位置信息。现在接着DocumentWriter写term信息这条线,继续索引信息的建立。
1.Term概念
先来介绍一下,Lucene的term概念。Term表示的是一个字符串,拥有域、频数和位置信息等属性,如下:
由上图:Term规定了一个词由字符串和域组成;而TermInfo则为出现该term的文件个数,频率文件(frq)的指针,位置文件(prx)的指针。
2.Term相关的接口和类
Lucene还是用了一些与term相关的接口和类:
TermEnum、TermDocs与TermPositions,第一个是抽象类,后两个都是接口。
这些接口和抽象类的继承和实现类的作用分别如下,它们的实现者一般是Segment和Doucment:
TermEnum提供枚举每一项term的能力;
TermDocs提供返回<document,frequency>对的能力;
SegmentTermDocs等类或继承自这些类或实现这些类,完成了提供term,freq,document信息的枚举功能。具体实现这里不作描述。