基于Lucene3.5.0如何从TokenStream获得Token lucene3.5下载
分类: 编程练习 2012-02-01 17:36 268人阅读 评论(0) 收藏 举报
通过学习Lucene3.5.0的doc文档,对不同release版本 lucene版本的API改动做分析。最后找到了有价值的改动信息。 LUCENE-2302: Deprecated TermAttribute and replaced by a new CharTermAttribute. The change is backwards compatible, so mixed new/old TokenStreams all work on the same char[] buffer independent of which interface they use. CharTermAttribute has shorter method names and implements CharSequence and Appendable. This allows usage like Java's StringBuilder in addition to direct char[] access. Also terms can directly be used in places where CharSequence is allowed (e.g. regular expressions).(Uwe Schindler, Robert Muir)
以上信息可以知道,原来的通过的方法已经不能够提取响应的Token了 [java] view plaincopy?
StringReaderreader=newStringReader(s);
TokenStreamts=analyzer.tokenStream(s,reader);
TermAttributeta=ts.getAttribute(TermAttribute.class);
通过分析Api文档信息 可知,CharTermAttribute已经成为替换TermAttribute的接口
因此我编写了一个例子来更好的从TokenStream中提取Token
[html] view plaincopy?
packagecom.segment;
importjava.io.StringReader;
importorg.apache.lucene.analysis.Analyzer;
importorg.apache.lucene.analysis.Token;
importorg.apache.lucene.analysis.TokenStream;
importorg.apache.lucene.analysis.tokenattributes.CharTermAttribute;
importorg.apache.lucene.analysis.tokenattributes.TermAttribute;
importorg.apache.lucene.util.AttributeImpl;
importorg.wltea.analyzer.lucene.IKAnalyzer;
publicclassSegment{
publicstaticStringshow(Analyzera,Strings)throwsException{
StringReaderreader=newStringReader(s);
TokenStreamts=a.tokenStream(s,reader);
Strings1="",s2="";
booleanhasnext=ts.incrementToken();
//Tokent=ts.next();
while(hasnext){
//AttributeImplta=newAttributeImpl();
CharTermAttributeta=ts.getAttribute(CharTermAttribute.class);
//TermAttributeta=ts.getAttribute(TermAttribute.class);
s2=ta.toString()+"";
s1+=s2;
hasnext=ts.incrementToken();
}
returns1;
}
publicStringsegment(Strings)throwsException{
Analyzera=newIKAnalyzer();
returnshow(a,s);
}
publicstaticvoidmain(Stringargs[])
{
Stringname="我是俊杰,我爱编程,我的测试用例";
Segments=newSegment();
Stringtest="";
try{
System.out.println(test+s.segment(name));
}catch(Exceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
}
}
更多阅读
如何从淘宝网首页进入规则频道 淘宝网网站首页
如何从淘宝网首页进入规则频道——简介现在淘宝做的是越来越大了,很多的人在淘宝上开店,在别人的地盘上就要守人家的规矩,那么淘宝的规则频道怎么进呢?如何从淘宝网首页进入规则频道——方法/步骤如何从淘宝网首页进入规则频道 1、先打
比特币中国如何挖矿获得比特币 怎样购买比特币
比特币中国如何挖矿获得比特币——简介特币是一种资源极其有限的数字货币,可以流通和使用,因为数量有限,所以受到众多投资者的追捧,所以价钱一直很高,那么想要拥有比特币的朋友不妨试一试挖矿,挖矿很简单和我们平常玩游戏差不多,今天平常心
如何调整ClearType获得更美观的结果 cleartype设置
如何调整ClearType获得更美观的结果——简介xp系统中的ClearType技术将显示字体时使用的每个像素拆分为3个亚像素,并按照字符内容对亚像素进行填充,以便获得更加平滑、更加美观的文字。 不过取决于具体的硬件设备(包括显卡和显示
如何从毛色毛量骨量辨别哈士奇的优异 哈士奇骨量
如何从毛色毛量骨量辨别哈士奇的优异——简介 西伯利亚雪橇犬属于中型工作犬,脚步轻快,动作优美。身体紧凑,有着很厚的被毛,耳朵直立,尾巴象刷子,显示出北方地区的遗传特征。步态很有特点:平滑、不费力。他最早的作用就是拉小车,现在仍十
Word如何从正文开始起插入页码 word目录正文页码
Word如何从正文开始起插入页码——简介在正文中插入页码可以方便使用阅读Word如何从正文开始起插入页码——工具/原料电脑一台Word如何从正文开始起插入页码——方法/步骤Word如何从正文开始起插入页码 1、,打开Word软件,将光标放到