term索引文件:

介绍完Luceneterm的概念,现在我们开始重新回到正体,建立索引数据库的term信息。

在介绍DocumentWriter类的时候,已经是用分词器将term提取了出来,并进行了排序,最后写了term的两个文件,frqterm频数)和prxterm位置)。接着,DocumentWriter类就要是用别的类来继续索引的建立了。

 

TermInfosWriter:

TermInfosWriter类写两个索引文件,tis文件和tii文件。Tis文件时记录term信息的文件,而tii文件时记录term信息索引的文件。这两个文件信息结构基本相同,tii可以看成类似于字典中,“A”,“B”等单词在正文中起始位置的索引。在查找时,可以先查找tii文件确定大概位置后再查tis文件。

Tis文件格式:

<ul>

    <li>version</li>

    <li>TermCount</li>

<ul>注:<TermInfo>TermCount

    <ul>注:Term

        <li>PrefixLength</li>

        <li>deltaLength</li>

        <li>deltaChars</li>

        <li>fieldNum</li>//出现的fieldNum

</ul>

    <li>DocFreq</li>//出现的doc的个数

<li>FreqDelta</li>//frq文件的位置delta指针

<li>ProxDelta</li>//prx文件的位置delta指针

</ul>

</ul>   

注:这里termtext的表示方法,采用的与前一个词的相同的部分的长度,不同部分的起始位置,不同部分的term来表示的。举例:前一个词add,要表示的词位addition,则additionLucene中的表示为:

     3(从位置3开始不同)5(不同的地方长度为5),ition(不同的部分)

 

Tii文件格式与tis的格式基本相同,只是在每个term信息的末尾,记下了该termtis文件中的位置delta,用作索引目的。


TermVectorWriter:

当该termfield要求存储TermVector的时候,该类起作用。该类写三个文件,tvdtvftvx,这三个文件可以看成组成是Lucene构成的正向索引(前向索引)。

 

Tvx格式:该文件用于记载tvd中各个document的位置(tvd记载document的位置)。

<ul>

    <li>version</li>

    <ul>注:tvd文件中每个document的位置

        <li>Document Position</li>

<ul>

</ul>

 

Tvd格式:该文件用于记载每个documentfield个数,以及记载tvf中各个field的位置(tvf记载field的位置)。

<ul>

    <li>version</li>

    <ul>每个document的信息

        <li>Field个数</li>

        <ul>document中每个fieldnum

            <li>fieldnum</li>

<ul>

<ul>document中每个fieldtvf中的位置

            <li>field的位置</li>

<ul>

</ul>

</ul>

 

 

Tvf格式:该文件是field的信息,term的列表以及其位置

<ul>

    <li>version</li>

<ul>每个field的信息

        <li>term的个数</li>

        <li>bits = STORE_POSITIONS_WITH_TERMVECTOR |

STORE_OFFSET_WITH_TERMVECTOR;

</li>

<ul>field中每个term的信息

    <li>PrefixLength</li>

    <li>deltaLength</li>

    <li>delta chars</li>

    <li>field中出现频率</li>

    <ul>频率个

        <li>位置delta</li>

</ul>

<ul>频率个

    <li>开始位移</li>

<li>结束位移</li>

</ul>

 

</ul>

</ul>

</ul>

 


posted on 2008-07-17 21:47  wanghoney  阅读(1232)  评论(0编辑  收藏  举报