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的更多相关文章
随机推荐
- POJ 1562 Oil Deposits
转载请注明出处:http://blog.csdn.net/a1dark 大规模的图论切题之旅正式开始了.由于今天停了一天的电.所以晚上才开始切题.直到昨晚才把图论大概看了一遍.虽然网络流部分还是不怎么 ...
- Swift 编程语言新手教程
今天在网上看到一篇很好的教程,分享给大家 原文地址:http://gashero.iteye.com/blog/2075324 文件夹 1 简单介绍 2 Swift入门 3 简单值 4 ...
- 用Qt开发Web和本地混合的应用
QtWebkit 模块使得Qt widget能够通过HTML的object标签嵌入到web页面中,并通过JavaScript代码进行访问,而Qt对象也能相应的访问web页面元素. 将Qt对象插入到we ...
- [Cocos2d-x]代码段记录
一些零碎的代码,便于以后查找 1.添加动画 //添加动画帧 CCAnimation* animation = CCAnimation::create(); ; i< ;i++) { ] = {} ...
- Java 5种字符串拼接方式性能比较。
最近写一个东东,可能会考虑到字符串拼接,想了几种方法,但对性能未知,于是用Junit写了个单元测试. 代码如下: import java.util.ArrayList; import java.uti ...
- GNU C的使用
基本语法 gcc [options] [filenames] 说明: 在gcc后面可以有多个编译选项,同时进行多个编译操作.很多 的gcc选项包括一个以上的字符.因此你必须为每个选项指定各 自 ...
- char数组和String互转
char ch[100];string str; 把char*(c类型的string)数组转换为string:str = ch; //即可str.assign(ch); //也可 把string类型转 ...
- configure: error: zlib not installed
export LDFLAGS="-L/usr/local/zlib/lib" export CPPFLAGS="-I/usr/local/zlib/include&quo ...
- Linux下安装Python3.3.0
Linux下安装Python3.3.0_路易_新浪博客 Linux下安装Python3.3.0 (2013-01-08 11:45:37)
- Cocos2d-x教程(28)-ttf 字体库的使用
欢迎增加 Cocos2d-x 交流群: 193411763 转载请注明原文出处:http://blog.csdn.net/u012945598/article/details/37650843 通常为 ...