• Lucene:(一)建立索引文件:2。建立索引文件(六)Lucene中Term的索引


    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>

     


  • 相关阅读:
    http协议详解
    001http协议
    django整合版
    数据库整合版
    并发编程整合版
    网络编程整合版
    面向对象编程
    LeetCode OJ:Binary Tree Postorder Traversal(后序遍历二叉树)
    LeetCode OJ:Populating Next Right Pointers in Each Node II(指出每一个节点的下一个右侧节点II)
    LeetCode OJ:Populating Next Right Pointers in Each Node(指出每一个节点的下一个右侧节点)
  • 原文地址:https://www.cnblogs.com/wanghoney/p/1245499.html
Copyright © 2020-2023  润新知