Lucene40SkipListWriter
多级跳跃表是保存在tim文件里的。
tip是term index,tim是term dictionary。记忆方法是,p是pointer因此是term index。
这个类会保存多个level的last变量和cur变量,同一时候使用RAMOutputStream数组缓存不同级别跳跃表的内容,一个term的全部doc加入�完后才写入tim文件。几个主要方法:
resetSkip:几个last变量重置,lastSkipFreqPointer和lastSkipProxPointer赋值为freq和prox文件的当前长度。发生在上一个term结束,下一个term開始时。
setSkipData:设置几个current变量,curFreqPointer和curProxPointer赋值为freq和prox文件的当前长度。
bufferSkip:按例如以下内容缓存进入不同级别的RAMOutputStream中:
(docDelta << 1) | 1 LastPayloadLength LastOffsetLength freqDelta proxDelta child
当中child是低一级的跳跃表指针。(docDelta是否shift,是否保存lastpayloadLength和lastoffsetlength看详细情况)。能够看出跳跃表是个单链表结构,假设按dicid从小到大递增,则总是指向小一个interval的位置,按dicid从大到小递减,则总是指向大一个interval的位置。lastpayloadlength和lastoffsetlength是跳跃表上一个节点最后一个position的信息,之所以保存是能够得到上个位置最后一个position的信息,但并不能因此反向遍历position列表。
writeSkip:缓存的多级跳跃表的RAMOutputStream写入tim文件里,写入时按级别从高到低写入,先是长度,然后是整个buffer,level 0不用写长度。
Lucene40SkipListWriter的更多相关文章
随机推荐
- CentOS下安装MySQL,Windows下使用Navicat for MySql连接
安装 查看有没有安装过: yum list installed mysql* rpm -qa | grep mysql* 查看有没有安装包: yu ...
- poj 1611 The Suspects(并查集)
The Suspects Time Limit: 1000MS Memory Limit: 20000K Total Submissions: 21598 Accepted: 10461 De ...
- [Windows Phone]模仿魔兽3技能按钮SkillButton
简介: 模仿魔兽3技能按钮,带CD效果.使用的时候可以当做普通按钮使用,同时也支持Binding. 音效紧耦合在控件内部,因为控件本身目的就是模拟魔兽3的技能按钮,所以不考虑音效的扩展. Demo结构 ...
- lightoj 1179(线段树)
传送门:Josephus Problem 题意:经典约瑟夫问题,有n个人,每次数到第k个人出列,求剩下的最后一人. 分析:用线段树模拟约瑟夫问题,记录区间的减少情况,然后根据每次数到的人在区间排第几位 ...
- Java-WebSocket 项目的研究(三) WebSocketClient 类 具体解释
通过之前两篇文章 Java-WebSocket 项目的研究(一) Java-WebSocket类图描写叙述 Java-WebSocket 项目的研究(二) 小试身手:client连接server并发送 ...
- 【剑指offer】约瑟夫环问题
转载请注明出处:http://blog.csdn.net/ns_code/article/details/27957407 题目描写叙述: 每年六一儿童节,JOBDU都会准备一些小礼物去看望孤儿院的小 ...
- 使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(二)——自定义安装
原文:使用WiX Toolset创建.NET程序发布Bootstrapper(安装策略管理)(二)--自定义安装 自定义产品卸载方式 继续从上一次的基础上前进,现在我们已经知道了最简单的bootstr ...
- MapReduce 异常 LongWritable cannot be cast to Text
有一个txt文件,内容格公式是这样的: 深圳订做T恤 5729944 深圳厂家t恤批发 5729945 深圳定做文化衫 5729944 文化衫厂家 5729944 订做文化衫 5729944 深圳t恤 ...
- svn rm --keep-local ./QueryParser_kill.logs
svn rm --keep-local ./QueryParser_kill.logs
- 开放源代码的微微信.NET 0.8 版公布了
微微信.NET 0.8 版公布了 A.源代码应用范围: 未认证的和经过认证的微信订阅号.微信服务号均可使用,本源代码的每个模块都提供全然的 ASP.NET C#源代码,绝对不含 ...