首页 > 编程知识 正文

索引存储结构举例,索引结构文件

时间:2023-05-04 00:58:26 阅读:162135 作者:3892

Terrier搜索平台对文档集进行索引后,主要为文档索引直接索引词典、http://ww.Sina.com /、3http://ww

下图总结了索引文件的数据结构。

文档索引(DocumentIndex ) )

文档索引位于data.document.fsarrayfile文件中,网址为倒排索引

指向直接索引的指针有两个属性:“字节偏移”(byteOffset )和“比特偏移”(bitOffset )。 通过使用直接索引文件中的字节和位偏移,可以直接访问直接索引中该文档的信息。 在此,文档的长度(docLength )包括文档内的所有单词) term )的数量)重复,项数) numEntries )是文档内出现的唯一单词) uniqueTerm )

指定文档索引中索引项目的格式。

doclength(4) byteOffset(8)8) bitOffset(1)1) numEntries(4)4) 1个索引条目的大小为4 )8)1)4=17字节,1个心跳

“直接索引”(DirectIndex )直接索引存储在data.direct.bf文件中。存储了每个文档的信息,包括文档长度(docLength)、条目数(numEntries)和 指向相应直接索引 的指针。每个索引条目包含单词id(termid )、单词频率(TF )。 此外,请注意,直接索引还必须可以通过文档索引的时针访问,因为它可能包含文档中的位置信息,以响应邻近查询或短语查询。

下图显示了直接索引中索引项的格式。

termid (伽马编码) (TF1 )-unary编码(……TF个伽马编码)可以通过特定解码函数来读索引。 关于伽马和unicode方式请参考相关文献。 本文不作说明。 特别要注意,TermID和Position存储与前一条记录的差异,而不是原始数据

字典(Lexicon )字典信息存储在data.lexicon.fsomapfile文件中。 字典顾名思义,名为存储了在每个文档中出现的词项ID和该词项出现在该文档的频率,每个文档对应n条记录,n表示该文档中出现了的单独词项(term)个数。,它存储键值(Key ) (即单词文本格式,逐单词项)在文档集中出现的频率统计信息。此外,为了便于搜索,它还存储了“转置”输入

下图显示了词典中每个词典条目的格式

key(61 ) TermID(4)4) TF )4) nt )4) ByteOffset(8)8) BitOffset(1)1) BlockCount(4)4)一个词典条目的大小为61 )

“反转索引”(InvertedIndex )反转索引保存在data.inverted.bf文件中。保存了文档集中各个词项的信息。可选,记录列表还可以包含单词项在文档中出现的位置和域。 位置信息为了实现短语和邻域检索,本文讨论了不保存位置信息和域信息的情况,在转置索引中对文件ID(DocID用gamma编码方式进行编码。 单词的频率使用Unary编码,如果记录了单词的位置,则使用伽马编码。 请特别注意,转置索引必须可以通过词典指针访问。

以下是索引中每个索引条目的格式

docid (伽马编码) termfrequence(ENtry编码) TF1 ) unary编码……position (TF个伽马编码) )这样单词项目中有n个索引项目(Entry ),n是该单词项目在文档集中

元数据索引(metaIndex )元数据索引信息存储在data.meta.IDx和data.meta.zdata文件中,主要存储文档的描述信息,如文档名称和文档id。 data.meta.idx文件包含指向data.meta.zdata的指针。 一个文档对应于data.meta.idx中的一条记录。 此记录仅包含data.meta.zdata文件中一个文档的偏移(长类型8字节)信息,并且可以访问data.meta.zdata文件是压缩文件

解压缩后的元数据记录格式如下:

docid(79 ) filename (6147 )一条记录为79 ) 79 6147=6226字节。 在读取原始数据时,首先获取已将data.meta.idx读取到内存中的文档的原始数据指针,获取元数据指针与下一文档的元数据指针之间的差异,然后获取记录长度。 在data.meta.zdata文件中的指针位置读取该记录长度的元数据记录,然后通过解压缩器将字节流解压缩为6226字节流来获取完整的元数据记录。 要获取DocID,请仅读取前79个字节;要获取filename,请从第80个字节开始向后读取6147个字节。

Part Learn from懦弱的仙人掌博客

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。