隨筆-10  評論-66  文章-1  trackbacks-0
          ? 最近開始搞下lucene,用空閑時間深入學習lucene的使用,希望今后能有所收獲,呵呵。。.現在寫的這個例子,是參考官方文檔寫的,寫這些東西只是為了自己所走過的路,同時也非常希望得到各位兄弟的指點,讓小弟少走點彎路

          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???? // 創建索引文件
          ??? public void writerContent() throws CorruptIndexException, LockObtainFailedException, IOException{
          ??? ???? // IndexWriter的第三個參數為false時,則在已有的索引文件追加內容
          ??? ??? 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?? // 搜索包含關鍵字key的內容
          ??? 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(" 查詢結果 : "+ doc.get("content"));
          ??? ??? }
          ??? ???
          ??? ??? search.close();
          ??? ??? directory.close();
          ??? ???
          ??? }
          ???
          }

          posted on 2008-01-21 21:02 javadragon 閱讀(868) 評論(0)  編輯  收藏 所屬分類: lucene

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 和龙市| 宁都县| 青州市| 乐至县| 昭通市| 广东省| 马鞍山市| 中方县| 明星| 闵行区| 翁源县| 嘉禾县| 云梦县| 建瓯市| 天长市| 陵川县| 安康市| 马尔康县| 湟中县| 华阴市| 尖扎县| 天全县| 永嘉县| 壶关县| 白河县| 吉安市| 和田县| 永修县| 永善县| 阜新市| 大竹县| 佛学| 澳门| 扶绥县| 宜昌市| 忻州市| 双辽市| 辽阳县| 文水县| 郧西县| 建德市|