package lighter.javaeye.com; import java.io.IOException; import java.io.StringReader; import org.apache.lucene.analysis.Analyzer; import org.apache.lucene.analysis.Token; import org.apache.lucene.analysis.TokenStream; import org.apache.lucene.analysis.standard.StandardAnalyzer; publicclass StandardAnalyzerTest ...{ //构造函数, public StandardAnalyzerTest() ...{ } publicstaticvoid main(String[] args) ...{ //生成一个StandardAnalyzer对象 Analyzer aAnalyzer =new StandardAnalyzer(); //测试字符串 StringReader sr =new StringReader("lighter javaeye com is the are on"); //生成TokenStream对象 TokenStream ts = aAnalyzer.tokenStream("name", sr); try...{ int i=0; Token t = ts.next(); while(t!=null) ...{ //辅助输出时显示行号 i++; //输出处理后的字符 System.out.println("第"+i+"行:"+t.termText()); //取得下一个字符 t=ts.next(); } }catch (IOException e) ...{ e.printStackTrace(); } } }
显示结果:
引用
第1行:lighter
第2行:javaeye
第3行:com
提示一下: StandardAnalyzer是lucene中内置的"标准分析器",可以做如下功能: 1、对原有句子按照空格进行了分词 2、所有的大写字母都可以能转换为小写的字母 3、可以去掉一些没有用处的单词,例如"is","the","are"等单词,也删除了所有的标点 查看一下结果与"new StringReader("lighter javaeye com is the are on")"作一个比较就清楚明了。 这里不对其API进行解释了,具体见lucene的官方文档。需要注意一点,这里的代码使用的是lucene2的API,与1.43版有一些明显的差别。