public class TestLucene {
 public static void main(String[] args) {
String   str   =   "我们测试的字符串是:中华人民共和国在1949年建立,从此开始了新中国的伟大篇章。";   try {
ik_CAnalyzer(str);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
} public   static   void   ik_CAnalyzer(String   str)   throws   Exception{ 
   //Analyzer   analyzer   =   new   MIK_CAnalyzer(); 
           Analyzer   analyzer   =   new   IK_CAnalyzer(); 
         
           Reader   reader   =   new   StringReader(str);   
           TokenStream   tokenStream   =   (TokenStream)analyzer.tokenStream( " ",   reader); 
           System.out.println( "=====IK_CAnalyzer==== "); 
           System.out.println( "分析方法:字典分词,正反双向搜索 "); 
           Token   token;         
           while   ((token   =   tokenStream.next())   !=   null)   {         
                     System.out.println(token.termText());         
           }   
 }  
}
运行结果是:
=====IK_CAnalyzer==== 
分析方法:字典分词,正反双向搜索 
我们

测试
字符串
字符
中华人民共和国
中华人民
中华
华人
人民共和国
人民

共和国
共和
1949年
建立
从此
开始
新中国
中国
伟大
大篇
篇章但是得到这些结果有什么用啊
我想将用户输入的一个字符串分词后和XML文件里的某个元素的值做对比(已放到javabean里),这样搜出来的结果正确率高吗,效率怎么样?希望达人不吝赐教!谢谢了!最近在做一个资源检索的小项目,就是用户输入一个关键字,服务器能返回相应的资源文件。xml文件里存放着相应资源文件的描述信息(譬如:title,keywords,describe等),有谁能给点思路吗?我打算用Lucene分词,可分完词以后(上面的代码),下一步呢,怎么办啊?(已经可以读取xml文件的title,keywords,describe元素了)。
急着解决,帮忙解决的一定给高分!谢谢了!

解决方案 »

  1.   

    1、查询你的所有xml文件,生成索引
    相关类IndexWriter,Document /**
     * 保存索引内容
     * 
     * @param file
     *            File 目标索引目录
     * @param doc
     *            Document 索引内容
     */
    public static void save(File file, Document... doc) {
    Analyzer analyzer = new DefaultAnalyzer();
    IndexWriter writer = null;
    try {
    writer = new IndexWriter(file, analyzer, file.exists() ? false
    : true, IndexWriter.MaxFieldLength.LIMITED);
    writer.setMaxMergeDocs(MAX_INDEX_SIZE);
    for (int i = 0; i < doc.length; i++) {
    writer.addDocument(doc[i]);
    }
    } catch (IOException ex) {
    log.fatal("Save index file error : " + file.getAbsolutePath(), ex);
    } finally {
    close(writer);
    }
    }public static void main(String[] args){
      Document doc=new Document();
      doc.add(new Field("file","d:/1.xml",Store.YES,Index.NO));
      ...
      save(new File("d:/a",doc));//这里必须是个不存在的目录或lucene的生成的目录
    }
    2、根据用户输入进行检索
    IndexReader reader = null;
    try {
    reader = IndexReader.open(file);
    IndexSearcher searcher = new IndexSearcher(reader);
    TopDocs docs = search.search(query);
    return docReader.read(searcher, docs);
    } catch (IOException ex) {
    log.fatal("Search index file error : " + file.getAbsolutePath());
    } finally { // 保证关闭
    close(reader);
    }
      

  2.   

    注意,上面的DefaultAnalyzer可换成你的IK_CAnalyzer