lucene中的四种分词器

来源:互联网 发布:离散数学 视频 知乎 编辑:程序博客网 时间:2024/06/06 19:48
  1. import java.io.IOException; 
  2. import java.io.StringReader; 
  3.  
  4. import javax.swing.text.AttributeSet.CharacterAttribute; 
  5.  
  6. import org.apache.lucene.analysis.Analyzer; 
  7. import org.apache.lucene.analysis.SimpleAnalyzer; 
  8. import org.apache.lucene.analysis.StopAnalyzer; 
  9. import org.apache.lucene.analysis.TokenStream; 
  10. import org.apache.lucene.analysis.WhitespaceAnalyzer; 
  11. import org.apache.lucene.analysis.standard.StandardAnalyzer; 
  12. import org.apache.lucene.analysis.tokenattributes.CharTermAttribute; 
  13. import org.apache.lucene.analysis.tokenattributes.OffsetAttribute; 
  14. import org.apache.lucene.analysis.tokenattributes.PositionIncrementAttribute; 
  15. import org.apache.lucene.analysis.tokenattributes.TypeAttribute; 
  16. import org.apache.lucene.util.Version; 
  17. import org.junit.Test; 
  18.  
  19.  
  20. public class AnalyzerUtil { 
  21.     public static void displayToken(String txt,Analyzer a){ 
  22.         TokenStream ts = a.tokenStream("content"new StringReader(txt)); 
  23.         PositionIncrementAttribute pia = ts.addAttribute(PositionIncrementAttribute.class); 
  24.         OffsetAttribute oa = ts.addAttribute(OffsetAttribute.class); 
  25.         CharTermAttribute ca = ts.addAttribute(CharTermAttribute.class); 
  26.         TypeAttribute ta = ts.addAttribute(TypeAttribute.class); 
  27.         try { 
  28.             while(ts.incrementToken()){ 
  29.                 System.out.println(ca.toString()+"  positionincrement:"+pia.getPositionIncrement()+"  "+"offset:"+oa.startOffset()+"-"+oa.endOffset()+"   type:"+ta.type()); 
  30.             } 
  31.         } catch (IOException e) { 
  32.             // TODO Auto-generated catch block 
  33.             e.printStackTrace(); 
  34.         } 
  35.         System.out.println("-----------"); 
  36.     } 
  37.     @Test 
  38.     public void test(){ 
  39.         String txt = "how are you,thank you!"
  40.         //构建四种分词器 
  41.         Analyzer a1 = new StandardAnalyzer(Version.LUCENE_35); 
  42.         Analyzer a2 = new StopAnalyzer(Version.LUCENE_35); 
  43.         Analyzer a3 = new SimpleAnalyzer(Version.LUCENE_35); 
  44.         Analyzer a4 = new WhitespaceAnalyzer(Version.LUCENE_35); 
  45.         AnalyzerUtil.displayToken(txt, a1); 
  46.         AnalyzerUtil.displayToken(txt, a2); 
  47.         AnalyzerUtil.displayToken(txt, a3); 
  48.         AnalyzerUtil.displayToken(txt, a4); 
  49.     } 

 

本文出自 “Kenan_ITBlog” 博客,请务必保留此出处http://soukenan.blog.51cto.com/5130995/1122415

原创粉丝点击