package com.test;
import java.io.Reader;
import java.io.StringReader;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.StopFilter;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenFilter;
import org.apache.lucene.analysis.TokenStream;
import org.apache.lucene.analysis.cjk.CJKAnalyzer;
import org.apache.lucene.analysis.cn.ChineseAnalyzer;
import org.apache.lucene.analysis.standard.StandardAnalyzer;
import org.mira.lucene.analysis.IK_CAnalyzer;
import org.mira.lucene.analysis.MIK_CAnalyzer;
public class All_Test {
private static String string = "書客網www.8211.cn計算機電子文檔分享平台";
public static void Standard_Analyzer(String str) throws Exception{
Analyzer analyzer = new StandardAnalyzer();
Reader r = new StringReader(str);
StopFilter sf = (StopFilter) analyzer.tokenStream("", r);
System.out.println("=====StandardAnalyzer====");
System.out.println("分析方法:預設沒有詞隻有字(一進制分詞)");
Token t;
while ((t = sf.next()) != null) {
System.out.println(t.termText());
}
}
public static void CJK_Analyzer(String str) throws Exception{
Analyzer analyzer = new CJKAnalyzer();
Reader r = new StringReader(str);
StopFilter sf = (StopFilter) analyzer.tokenStream("", r);
System.out.println("=====CJKAnalyzer====");
System.out.println("分析方法:交叉雙字分割(二進制分詞)");
Token t;
while ((t = sf.next()) != null) {
System.out.println(t.termText());
}
}
public static void Chiniese_Analyzer(String str) throws Exception{
Analyzer analyzer = new ChineseAnalyzer();
Reader r = new StringReader(str);
TokenFilter tf = (TokenFilter) analyzer.tokenStream("", r);
System.out.println("=====chinese analyzer====");
System.out.println("分析方法:基本等同StandardAnalyzer(一進制分詞)");
Token t;
while ((t = tf.next()) != null) {
System.out.println(t.termText());
}
}
public static void ik_CAnalyzer(String str) throws Exception{
Analyzer analyzer = new MIK_CAnalyzer();
// Analyzer analyzer = new IK_CAnalyzer();
Reader r = new StringReader(str);
TokenStream ts = (TokenStream)analyzer.tokenStream("", r);
System.out.println("=====IK_CAnalyzer====");
System.out.println("分析方法:字典分詞,正反雙向搜尋");
Token t;
while ((t = ts.next()) != null) {
System.out.println(t.termText());
}
}
public static void main(String[] args) throws Exception{
String str = string;
System.out.println("我們測試的字元串是:"+str);
Standard_Analyzer(str);
CJK_Analyzer(str);
Chiniese_Analyzer(str);
ik_CAnalyzer(str);
}
}
我們測試的字元串是:書客網www.8211.cn計算機電子文檔分享平台
=====StandardAnalyzer====
分析方法:預設沒有詞隻有字(一進制分詞)
書
客
網
www.8211.cn
計
算
機
電
子
文
檔
分
享
平
台
=====CJKAnalyzer====
分析方法:交叉雙字分割(二進制分詞)
書客
客網
8211
cn
計算
算機
機電
電子
子文
文檔
檔分
分享
享平
平台
=====chinese analyzer====
分析方法:基本等同StandardAnalyzer(一進制分詞)
書
客
網
www
cn
計
算
機
電
子
文
檔
分
享
平
台
=====IK_CAnalyzer====
分析方法:字典分詞,正反雙向搜尋
書客網
www
8211
cn
計算機
機電
電子
文檔
分享
平台