? 最近開始搞下lucene,用空閑時(shí)間深入學(xué)習(xí)lucene的使用,希望今后能有所收獲,呵呵。。.現(xiàn)在寫的這個(gè)例子,是參考官方文檔寫的,寫這些東西只是為了自己所走過的路,同時(shí)也非常希望得到各位兄弟的指點(diǎn),讓小弟少走點(diǎn)彎路
package test;
import java.io.IOException;
import org.apache.lucene.analysis.SimpleAnalyzer;
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.queryParser.ParseException;
import org.apache.lucene.queryParser.QueryParser;
import org.apache.lucene.search.Hits;
import org.apache.lucene.search.IndexSearcher;
import org.apache.lucene.search.Query;
import org.apache.lucene.store.Directory;
import org.apache.lucene.store.FSDirectory;
import org.apache.lucene.store.LockObtainFailedException;
import org.junit.Before;
import org.junit.Test;
/**
?* @author dragon
?*
?*/
public class TestBase {
???
??? private String path;
??? @Before
??? public void init(){
??? ??? path = "/home/dragon/application/mywork/lucenetest/index";
??? }
???
?
//??? @Test???? // 創(chuàng)建索引文件
??? public void writerContent() throws CorruptIndexException, LockObtainFailedException, IOException{
??? ???? // IndexWriter的第三個(gè)參數(shù)為false時(shí),則在已有的索引文件追加內(nèi)容
??? ??? IndexWriter writer = new IndexWriter(path, new SimpleAnalyzer(), true);
??? ???
??? ???
??? ??? Document doc = new Document();
??? ??? String text = "Figure out which ClassLoader to use.? For JDK 1.2 and later use the";
??? ??? doc.add(new Field("content", text, Field.Store.YES, Field.Index.TOKENIZED));
??? ???
??? ??? Document doc2 = new Document();
??? ??? String text2 = "context ClassLoader if possible.? Note: we defer linking the class";
??? ??? doc.add(new Field("content", text2, Field.Store.YES, Field.Index.TOKENIZED));
??? ???
??? ??? Document doc3 = new Document();
??? ??? String text3 = "that calls an API only in JDK 1.2 until runtime so that we can catch";
??? ??? doc.add(new Field("content", text3, Field.Store.YES, Field.Index.TOKENIZED));
??? ???
??? ??? writer.addDocument(doc);
??? ??? writer.addDocument(doc2);
??? ??? writer.addDocument(doc3);
??? ??? ?
??? ??? writer.optimize();
??? ??? writer.close();
??? ???
??? }
???
??? @Test?? // 搜索包含關(guān)鍵字key的內(nèi)容
??? public void searchContent() throws IOException, ParseException{
??? ??? Directory directory = FSDirectory.getDirectory(path);
??? ??? IndexSearcher search = new IndexSearcher(directory);
??? ???
??? ??? String key = "use";
??? ??? QueryParser parser = new QueryParser("content",new SimpleAnalyzer());
??? ??? Query query = parser.parse(key);
??? ???
??? ??? Hits hits = search.search(query);
??? ???
??? ??? for(int i = 0; i < hits.length(); i++){
??? ??? ??? Document doc = hits.doc(i);
??? ??? ??? System.out.println(" 查詢結(jié)果 : "+ doc.get("content"));
??? ??? }
??? ???
??? ??? search.close();
??? ??? directory.close();
??? ???
??? }
???
}
posted on 2008-01-21 21:02
javadragon 閱讀(863)
評論(0) 編輯 收藏 所屬分類:
lucene