lucene结构详解之五词典(tis)及词典索引(tii)信息

反向信息是索引文件的核心,也即反向索引。 
反向索引包括两部分,左面是词典(Term Dictionary),右面是倒排表(Posting List)。 
在 Lucene 中,这两部分是分文件存储的,词典是存储在 tii,tis中的,倒排表又包括两部分,

一部分是文档号及词频,保存在 frq中,一部分是词的位置信息,保存在 prx中。 

 Term Dictionary (tii, tis)  
 Frequencies (.frq)  
 Positions (.prx)  


词典(tis)及词典索引(tii)信息格式如下:



在词典中,所有的词是按照字典顺序排序的。 
1.  词典文件(tis)  
 1)TermCount:词典中包含的总的词数  
 2)IndexInterval:为了加快对词的查找速度,也应用类似跳跃表的结构,假设IndexInterval 为 4,则在词典索引(tii)文件中保存第 4 个,第 8 个,第 12 个词,这

样可以加快在词典文件中查找词的速度。

3)SkipInterval:倒排表无论是文档号及词频,还是位置信息,都是以跳跃表的结构存
在的,SkipInterval是跳跃的步数。  
4)MaxSkipLevels:跳跃表是多层的,这个值指的是跳跃表的最大层数。  
5)TermCount个项的数组,每一项代表一个词,对于每一个词,以前缀后缀规则存放词的文本信息(PrefixLength + Suffix),词属于的域的域号(FieldNum),有多少篇文档
包含此词(DocFreq),此词的倒排表在 frq,prx中的偏移量(FreqDelta, ProxDelta),此词的倒排表的跳跃表在 frq 中的偏移量(SkipDelta),这里之所以用 Delta,是应用差
值规则。  

2.词典索引文件(tii)  
1) 词典索引文件是为了加快对词典文件中词的查找速度,保存每隔 IndexInterval 个词。  
 2)词典索引文件是会被全部加载到内存中去的。  
 3)IndexTermCount = TermCount / IndexInterval:词典索引文件中包含的词数。  
 4)IndexInterval同词典文件中的 IndexInterval。  
 5)SkipInterval同词典文件中的 SkipInterval。  
 6)MaxSkipLevels同词典文件中的 MaxSkipLevels。  
 7)IndexTermCount个项的数组,每一项代表一个词,每一项包括两部分,第一部分是词本身(TermInfo),第二部分是在词典文件中的偏移量(IndexDelta)。假设IndexInterval为4,此数组中保存第4 个,第8个,第 12个词。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值