Package com.chenlb.mmseg4j.lucene

Source Code of com.chenlb.mmseg4j.lucene.LuceneUseSimpleAnalyzerTest

package com.chenlb.mmseg4j.lucene;

import java.io.IOException;

import junit.framework.TestCase;

import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.CorruptIndexException;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexWriter.MaxFieldLength;
import org.apache.lucene.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.search.ScoreDoc;
import org.apache.lucene.search.TopDocs;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.RAMDirectory;
import org.apache.lucene.util.Version;

import com.chenlb.mmseg4j.analysis.ComplexAnalyzer;
import com.chenlb.mmseg4j.analysis.SimpleAnalyzer;

public class LuceneUseSimpleAnalyzerTest extends TestCase {

  Directory dir;
  Analyzer analyzer;
 
  @Override
  protected void setUp() throws Exception {
    String txt = "京华时报1月23日报道 昨天,受一股来自中西伯利亚的强冷空气影响,本市出现大风降温天气,白天最高气温只有零下7摄氏度,同时伴有6到7级的偏北风。";
    //txt = "2008年底发了资金吗";
    analyzer = new SimpleAnalyzer();
    analyzer = new ComplexAnalyzer();
    //analyzer = new MaxWordAnalyzer();
    dir = new RAMDirectory();
    IndexWriter iw = new IndexWriter(dir, analyzer, MaxFieldLength.UNLIMITED);
    Document doc = new Document();
    doc.add(new Field("txt", txt, Field.Store.YES, Field.Index.ANALYZED));
    iw.addDocument(doc);
    iw.commit();
    iw.optimize();
    iw.close();
  }

  public void testSearch() {
    try {
      IndexSearcher searcher = new IndexSearcher(dir);
      QueryParser qp = new QueryParser(Version.LUCENE_29, "txt", analyzer);
      Query q = qp.parse("西伯利亚")//2008年底
      System.out.println(q);
      TopDocs tds = searcher.search(q, 10);
      System.out.println("======size:"+tds.totalHits+"========");
      for(ScoreDoc sd : tds.scoreDocs) {
        System.out.println(sd.score);
        System.out.println(searcher.doc(sd.doc).get("txt"));
      }
    } catch (CorruptIndexException e) {
     
      e.printStackTrace();
    } catch (IOException e) {
     
      e.printStackTrace();
    } catch (ParseException e) {
     
      e.printStackTrace();
    }
  }
 
}
TOP

Related Classes of com.chenlb.mmseg4j.lucene.LuceneUseSimpleAnalyzerTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.