刚上班第一个任务就是将db查询改为Lucene查询,之前也没有接触过Lucene,也是慢慢自学Lucene,Lucene大概的意思就是将原先的数据库重新生成重组成新的数据库,它生成的Lucene数据库会有多个文件夹。用Lucene查询会大大提高查询的速度。下面介绍的是Lucene中常见的几种分词。
public class Lucene分词 {
private static String str=" 我爱你中国, 我的母亲";
public static void print(Analyzer analyzer){
StringReader reader=new StringReader(str);
try {
TokenStream tokenStream=analyzer.tokenStream("", reader);
tokenStream.reset();
CharTermAttribute term=tokenStream.getAttribute(CharTermAttribute.class);
System.out.println("分词技术"+analyzer.getClass());
while(tokenStream.incrementToken()){
System.out.println(term.toString()+"|");
}
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void main(String[] args) {
Analyzer analyzer=null;
//这个是标准分词器 将汉字分成一个一个
analyzer=new StandardAnalyzer(Version.LUCENE_36);
Lucene分词.print(analyzer);
//这个是根据空格的经行分割
analyzer=new WhitespaceAnalyzer(Version.LUCENE_36);
Lucene分词.print(analyzer);
//这个是根据空格和标点符号经行分割
analyzer=new SimpleAnalyzer(Version.LUCENE_36);
Lucene分词.print(analyzer);
//这个是将前后两个字经行分割,每个字出现2次
analyzer=new CJKAnalyzer(Version.LUCENE_36);
Lucene分词.print(analyzer);
//这个是将一整句话进行分割
analyzer=new KeywordAnalyzer();
Lucene分词.print(analyzer);
//按照空格和标点符号经行分割
analyzer=new StopAnalyzer(Version.LUCENE_36);
Lucene分词.print(analyzer);
}
}
《Android版本更新、热更新》系列课程视频
版本更新6.0,7.0统统搞定!!
热修复不在麻烦,再也不用担心上线后出bug!!
http://edu.csdn.net/course/detail/6523
http://edu.csdn.net/course/play/6523/131198
《Kotlin语法基础到实战开发》系列课程视频
http://edu.csdn.net/course/detail/6409?locationNum=7&fps=1&ref=srch&loc=1