搜索引擎的中文分析器的比較和结果

  在所有的搜索引擎中的中文分析器均实现Analyzer抽象类.

常用的中文分析器:  

MMAnalyzer:je-analysis.jar

IK_Analyzer.jar中文解析工具组件

MIK_CAnalyzer和 IK_CAnalyzer

CJKAnalyzer:解析中日韩语言的类库

PaodingAnalyzer:解析器尚未分析.

 

 

 

package cn.com.vnvtrip.apache.luence.utils;

import java.io.IOException;
import java.io.StringReader;

import jeasy.analysis.MMAnalyzer;

import org.apache.lucene.analysis.KeywordAnalyzer;
import org.apache.lucene.analysis.Token;
import org.apache.lucene.analysis.TokenStream;
import org.mira.lucene.analysis.IK_CAnalyzer;
import org.mira.lucene.analysis.MIK_CAnalyzer;

import cn.com.vnvtrip.apache.luence.CJKAnalyzer;
import cn.com.vnvtrip.apache.luence.ChineseAnalyzer;

public class AnalyzerTest {
 public static void main(String[] args) {
  String str = "中国人民共和国成立了";
  ChineseAnalyzer cn = new ChineseAnalyzer();
  KeywordAnalyzer kw = new KeywordAnalyzer();
  CJKAnalyzer cjk = new CJKAnalyzer();
  MMAnalyzer mm = new MMAnalyzer();

  MIK_CAnalyzer ikk = new MIK_CAnalyzer();

  IK_CAnalyzer ik = new IK_CAnalyzer();

  StringReader sr = new StringReader(str);
  try {
   TokenStream tokenstream = mm.reusableTokenStream("testField", sr);
   Token token = null;
   while ((token = tokenstream.next()) != null) {
    System.out.println("token start " + token.startOffset()
      + " end =" + token.endOffset() + " text="
      + token.termText());
   }
  } catch (IOException e) {
   e.printStackTrace();
  }

 }
}

 

各种解析器解析结果如下:

 

MMAnalyzer :

 

token start 0 end =4 text=中国人民
token start 4 end =7 text=共和国

 

CJKAnalyzer:解析中日韩语言的类库

token start 0 end =2 text=中国
token start 1 end =3 text=国人
token start 2 end =4 text=人民
token start 3 end =5 text=民共
token start 4 end =6 text=共和
token start 5 end =7 text=和国
token start 6 end =8 text=国成
token start 7 end =9 text=成立
token start 8 end =10 text=立了

 

 

MIK_CAnalyzer:解析结果

token start 0 end =4 text=中国人民
token start 4 end =7 text=共和国
token start 7 end =9 text=成立
token start 8 end =10 text=立了

 

 

IK_CAnalyzer:解析结果

token start 0 end =4 text=中国人民
token start 0 end =3 text=中国人
token start 0 end =2 text=中国
token start 1 end =3 text=国人
token start 2 end =4 text=人民
token start 2 end =3 text=人
token start 4 end =7 text=共和国
token start 4 end =6 text=共和
token start 7 end =9 text=成立
token start 8 end =10 text=立了
token start 7 end =10 text=成立了

 

貌似IK_Canalyzer具有比較强大的中文分词功能.

你可能感兴趣的:(apache,搜索引擎,Lucene)