addPosition方法的源码
来源:互联网 发布:网络系统威胁 网络传输 编辑:程序博客网 时间:2024/05/22 15:04
package indexwriter;
import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermVectorOffsetInfo;
//在invertDocument方法中,通过addPosition方法向postingTable添加位置和信息
//这里addPosition源码
public class AddPosition {
private final void addPosition(String field, String text, int position, TermVectorOffsetInfo offset){
//termBuffer是一个Term类型的对象
termBuffer.set(field, text);
//从postingTable中取出当前的词条对应的Posting对象
Posting ti = (Posting)postingTable.get(termBuffer);
//如果为不为NULL,则说明当前postingTable中已经有了这个词条
if(ti != null)
//取出的词条出现的次数
int freq = ti.freq;
//如果当前存放位置的数组已经被装满了,就创一个新的长度为
//原来两倍 的int型数组
if(ti.position.length == freq){
int [] newPositions = new int[freq * 2];
int [] positions = ti.positions;
for(int i = 0; i < freq; i++)
newPositions[i] = positions[i];
ti.positions = newPositions;
}
//保存新数组进入当前词条的Posting对象中
ti.positions[freq] = position;
if(offset != null)
//如果当前用于存放偏移量的数组已经满了,就创建一个新的
//长度为原来两倍的Int型数组
if(ti.offsets.length == freq){
TermVectorOffsetInfo[] newOffsets = new TermVectorOffsetInfo[freq * 2];
TermVectorOffsetInfo[] offsets = ti.offsts;
for(int i = 0; i < freq; i++){
newOffsets[i] = offsets[i];
}
ti.offsets[freq] = offset;
}
ti.freq = freq +1;
}
//如果ti为NULL,则说明这是一个新的词条
else{
Term term = new Term(field, text, false);
postingTable.put(term, new Posting(term, postion, offset));
}
}
import org.apache.lucene.index.Term;
import org.apache.lucene.index.TermVectorOffsetInfo;
//在invertDocument方法中,通过addPosition方法向postingTable添加位置和信息
//这里addPosition源码
public class AddPosition {
private final void addPosition(String field, String text, int position, TermVectorOffsetInfo offset){
//termBuffer是一个Term类型的对象
termBuffer.set(field, text);
//从postingTable中取出当前的词条对应的Posting对象
Posting ti = (Posting)postingTable.get(termBuffer);
//如果为不为NULL,则说明当前postingTable中已经有了这个词条
if(ti != null)
//取出的词条出现的次数
int freq = ti.freq;
//如果当前存放位置的数组已经被装满了,就创一个新的长度为
//原来两倍 的int型数组
if(ti.position.length == freq){
int [] newPositions = new int[freq * 2];
int [] positions = ti.positions;
for(int i = 0; i < freq; i++)
newPositions[i] = positions[i];
ti.positions = newPositions;
}
//保存新数组进入当前词条的Posting对象中
ti.positions[freq] = position;
if(offset != null)
//如果当前用于存放偏移量的数组已经满了,就创建一个新的
//长度为原来两倍的Int型数组
if(ti.offsets.length == freq){
TermVectorOffsetInfo[] newOffsets = new TermVectorOffsetInfo[freq * 2];
TermVectorOffsetInfo[] offsets = ti.offsts;
for(int i = 0; i < freq; i++){
newOffsets[i] = offsets[i];
}
ti.offsets[freq] = offset;
}
ti.freq = freq +1;
}
//如果ti为NULL,则说明这是一个新的词条
else{
Term term = new Term(field, text, false);
postingTable.put(term, new Posting(term, postion, offset));
}
}
0 0
- addPosition方法的源码
- 阅读源码的方法
- 源码阅读的方法
- 源码安装MySql的方法
- 同步AOKP源码的方法
- 分析 源码 的一些方法
- ubuntu下载源码的方法
- 修改opencv源码的方法
- 升级厂家源码的方法
- listFiles(filenameFilter)方法的源码
- 修改opencv源码的方法
- OpenCV定位源码的方法
- 调试openstack源码的方法
- 查看xml源码的方法
- ffmpeg的源码编译方法
- expect的源码安装方法
- htop的源码编译方法
- FileStatus的主要方法的使用(源码)
- 八皇后问题
- struts2的json-default和struts-default的区别
- opengl中glblendfunc用法
- IndentationError:expected an indented block错误解读
- Codeforces Round #274 (Div. 2) C. Exams
- addPosition方法的源码
- 互联网是一个很好的工具
- ZOJ 3380 Patchouli's Spell Cards (概率dp)
- ZOJ2016 POJ1386(有向图的欧拉路判断)
- [go语言]同时上传表单字段和文件
- hdu 2149 Public Sale(博弈)
- UVa 1533 - Moving Pegs (隐式图搜索 + 状态压缩)
- Unity3D如何使用脚本实现跳跃的效果
- ffmpeg的编译大全(包括 ffmpeg for android)