Lemur的disk index

Manifest主要保存索引的XML文档集的统计信息和索引的元素结点的统计信息。一个示例如下:

<parameters>

      <code-build-date>Apr 10 2008</code-build-date>

      <corpus>

             <document-base>1</document-base>

             <frequent-terms>2</frequent-terms>

             <maximum-document>9</maximum-document>

             <total-documents>8</total-documents>

             <total-terms>35231</total-terms>

             <unique-terms>5799</unique-terms>

      </corpus>

      <fields>

             <field>

                    <byte-offset>0</byte-offset>

                    <isNumeric>false</isNumeric>

                    <isOrdinal>false</isOrdinal>

                    <name>article</name>

                    <total-documents>8</total-documents>

                    <total-terms>35182</total-terms>

             </field>

             <field>

                    <byte-offset>48</byte-offset>

                    <isNumeric>false</isNumeric>

                    <isOrdinal>false</isOrdinal>

                    <name>body</name>

                    <total-documents>7</total-documents>

                    <total-terms>1956</total-terms>

             </field>

<indri-distribution>Indri development release 2.6</indri-distribution>

      <type>DiskIndex</type>

</parameters>

Corpus:主要记录索引的文档的总数,单词的总数,不重复的单词的总数,文档编号的起始值、目前已使用的最大值,f>1000的单词的个数。

       Field:主要记录索引的元素结点的统计信息,主要包括元素结点的倒排索引在fieldFile的起始位置,是否是数字类型的,出现在多少个文档中,包含的单词的总数。

Corpus:主要记录索引的文档的总数,单词的总数,不重复的单词的总数,文档编号的起始值、目前已使用的最大值,f>1000的单词的个数。

       Field:主要记录索引的元素结点的统计信息,主要包括元素结点的倒排索引在fieldFile的起始位置,是否是数字类型的,出现在多少个文档中,包含的单词的总数。

invertedFile主要存储单词的倒排序索引,它主要存储包含这相单词的所有文档,和在这些文档中的位置,文档用文档编号documentId表示,位置position用这个单词之前的单词个数表示,由于一个文档中可能包含多个相同的单词,所以在存储位置信息时采用了RVL压缩算法。要查找指定单词的倒排序索引,可先查找frequentString或infrequentString,从查找到的DiskTermData找出索引在invertedFile中的起始位置和长度,迅速定位该单词对应的倒排索引。invertedFile的示例如表四所示。

表四

TermData

documentId,position size,position1,positon2…

documentId,position size,position1,positon2…

TermData

documentId,position size,position1,positon2…

documentId,position size,position1,positon2…

TermData

documentId,position size,position1,positon2…

documentId,position size,position1,positon2…

fieldsFile主要存储元素结点的倒排过引,和单词的倒排索引类似,主要包括所在的文档编号,元素结点的开始编号extent.begin、结束编号extent.end,序号 extent. Ordinal,序号表示在文档中的先后次序,是从1开始记数的。元素结点的开始编号和结束编号,就是结点前的单词的个数。fieldsFile的示例如表五所示。

表五

UINT8 control (numeric ? 0x02 : 0 | ordinal ? 0x04 : 0),

docid, extents size, extent.begin, extent.end, extent. ordinal

docid, extents size, extent.begin, extent.end, extent. ordinal

UINT8 control (numeric ? 0x02 : 0 | ordinal ? 0x04 : 0),

docid, extents size, extent.begin, extent.end, extent. ordinal

docid, extents size, extent.begin, extent.end, extent. ordinal

UINT8 control (numeric ? 0x02 : 0 | ordinal ? 0x04 : 0),

docid, extents size, extent.begin, extent.end, extent. ordinal

docid, extents size, extent.begin, extent.end, extent. ordinal

documentLengths 里面存放着一个一个的32位整数,表明每个文档长度。

documentStatistics主要按照索引的顺序,依次存入每个文档DocumentData这个结构体,DocumentData结构体中包含的字段表六所示。由于每个DocumentData结构体的长度是固定的,所以可根据(docid-1)*sizeof(DocumentData)来查找文档对应的DocumentData结构体。

表六

UINT64 offset

该文档的结构信息在directFile中的起始位置

int byteLength

该文档的结构信息在directFile中的长度

int indexedLength

去除stopword后,文档单词个数

int totalLength

不去除stopword后,文档单词个数

int uniqueTermCount

文档中不重复的单词个数

directFile主要存放每个文档中单词和元素结点的信息,包括数量和位置,根据这些信息,可重构文档的整个结构。示例结构如表七所示。

表七

termCount, fieldCount,termid1,termid2,…fields1.id, fields1. parentOrdinal, fields1. begin, fields1. end, fields1. number,…

termCount, fieldCount,termid1,termid2,…fields1.id, fields1. parentOrdinal, fields1. begin, fields1. end, fields1. number,…

termCount, fieldCount,termid1,termid2,…fields1.id, fields1. parentOrdinal, fields1. begin, fields1. end, fields1. number,…

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值