LuceneCJKAnalyzerText.java
上传用户:cctqzzy
上传日期:2022-03-14
资源大小:12198k
文件大小:2k
源码类别:

搜索引擎

开发平台:

Java

  1. package chapter8;
  2. import java.io.IOException;
  3. import org.apache.lucene.document.Field;
  4. import org.apache.lucene.document.Document;
  5. import org.apache.lucene.index.IndexWriter;
  6. import org.apache.lucene.analysis.Analyzer;
  7. import org.apache.lucene.analysis.TokenStream;
  8. import org.apache.lucene.analysis.Token;
  9. //import org.apache.lucene.analysis.cjk.CJKAnalyzer;
  10. import java.util.*;
  11. import java.io.*;
  12. public class LuceneCJKAnalyzerText {
  13. private static String Dest_Index_Path = "D:\workshop\TextIndex";
  14. static protected String chinesedetail = "中文文档中最基础的结构是句子、短语、词汇、单个的汉字。中文环境的句子通常可以利用标点符号来分隔。" ;
  15. public static final String[] self_stop_words = {
  16.     "的", "中", "文文"};
  17. public static void main(String[] args) {
  18. try {
  19. Analyzer TextAnalyzer = new CJKAnalyzer(self_stop_words);
  20. IndexWriter TextIndex = new IndexWriter(Dest_Index_Path,TextAnalyzer,true);
  21. Document document = new Document();
  22. Field field_content = new Field("content", chinesedetail, 
  23. Field.Store.YES,Field.Index.TOKENIZED);
  24. document.add(field_content);
  25. TextIndex.addDocument(document);
  26. TokenStream stream = TextAnalyzer.tokenStream("content", new StringReader(chinesedetail));
  27. while(true)
  28. {
  29. Token item = stream.next();
  30. if(null == item ) break;
  31. System.out.print("{"+item.termText()+"} ");
  32. }
  33. TextIndex.optimize();
  34. TextIndex.close();
  35. } catch (IOException e) {
  36. e.printStackTrace();
  37. }
  38. System.out.println("");
  39. System.out.println("Index success");
  40. }
  41. }