使用lucene找出关键字在文中的位置以及出现的频率
我知道使用lucene可以查找关键字,但是怎么获得关键字在文中的位置,以及关键字在文中出现的频率?lucene里面好像有相应的类或者方法,怎么使用?最好能给出个例子,谢谢...
我知道使用lucene可以查找关键字,但是怎么获得关键字在文中的位置,以及关键字在文中出现的频率?
lucene里面好像有相应的类或者方法,怎么使用?最好能给出个例子,谢谢! 展开
lucene里面好像有相应的类或者方法,怎么使用?最好能给出个例子,谢谢! 展开
2个回答
展开全部
你的问题我之前碰到了,已解决。
首先,先要根据reader,term取得termPositions
然后判断文档编号是不是你当前文档的编号,进而取得频率和位置。
代码如下:
this.termPositions =this.reader.termPositions();
this.termPositions.seek(new Term(this.fields, this.term.text()));
while(this.termPositions.next())
if(this.termPositions.doc() == this.currentPosition){
this.freq = this.termPositions.freq(); //得到频率
int[] pos = new int[this.freq];
for (int i = 0; i < this.freq; i++)
pos[i] = this.termPositions.nextPosition();//位置
}
首先,先要根据reader,term取得termPositions
然后判断文档编号是不是你当前文档的编号,进而取得频率和位置。
代码如下:
this.termPositions =this.reader.termPositions();
this.termPositions.seek(new Term(this.fields, this.term.text()));
while(this.termPositions.next())
if(this.termPositions.doc() == this.currentPosition){
this.freq = this.termPositions.freq(); //得到频率
int[] pos = new int[this.freq];
for (int i = 0; i < this.freq; i++)
pos[i] = this.termPositions.nextPosition();//位置
}
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询