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