lucence是一个很好的搜索引擎,可以很好的实现文档的关键词搜索,看看如何用他提供的api实现自己的分词器。
废话不说,直接上代码吧
public void solve(Analyzer zz,Strng text){
TokenStream tt=zz..tokenStream(null,new StringReader(text));
TermAttribute term=tt.addAttribute(TermAttribute.class);
PositionIncrementAttribute position=tt.addAttribute(PositionIncrementAttribute.class);
OffsetAttribute offset=tt.addAttribute(OffsetAttribute.class);
TypeAttribute type=tt.addAttribute(TypeAttribute.class);
int position=0;
while(tt.incrementToken()){
int increment=position.getPositionIncrement();
if(increment>0){
position+=increment;
System.out.println(position+":");
}
System.out.println(term.term+" "+offset.startOffset+" "+offset.endOffset()+" "+type.type());
}
}
其中TermAttaibute是词汇对象,PositionIncrementAttribute是词汇的位置增量,默认值是1,还有offsetAttribute是偏移量,代表词汇在文本中的具体位置,还有typeAttribute是单词的类型,默认是word