Lucene 1.4.3 anchor.png Edit

  • ライブラリのインストール

以下のサイトよりライブラリをダウンロード。
https://sen.dev.java.net/...

# cd /usr/local/arch
# wget https://sen.dev.java.net/.../lucene-ja-1.4.3sen1.2-2.zip
# cd ../src
# jar xvf ../arch/lucene-ja-1.4.3sen1.2-2.zip
# cp lucene-ja/lib/lucene-1.4.3.jar /home/test/WEB-INF/lib
# cp lucene-ja/lib/lucene-ja.jar /home/test/WEB-INF/lib
  • サンプルソース
# cd /home/test/src/com/domain/test
# vi SearchTest.java
package com.domain.test;
import java.io.File;
import java.io.FileInputStream;
import java.text.SimpleDateFormat;
import org.apache.lucene.analysis.Analyzer;
import org.apache.lucene.analysis.cjk.CJKAnalyzer;
import org.apache.lucene.document.Document;
import org.apache.lucene.document.Field;
import org.apache.lucene.index.IndexWriter;
import org.apache.lucene.index.IndexReader;
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 com.domain.service.DaoService;
import com.domain.pojo.TestData;
public class SearchTest{
 private DaoService ds;
 private SearchTest(){
   try{
     beanFactory=new XmlBeanFactory(new FileInputStream(appContextXml));
     ds=(DaoService)beanFactory.getBean(daoService);
   }
   catch(Exception e){
     e.printStackTrace();
   }
 }
  public static void main(String args[]){
    SearchTest st=new SearchTest();
    st.execute();
  }
  public void execute(){
    try{
//make index
      Analyzer analyzer=new CJKAnalyzer();
      File file=new File("indexPath");
      IndexWriter iw=new IndexWriter(file,analyzer,true);
      TestData[] testDatas=ds.getTestDataAll();
      for(int i=0; i<testDatas.length; i++){
        iw.addDocument(makeDocument(testDatas[i]));
      }
      iw.optimize();
      iw.close();
//request query
      IndexReader ir=IndexReader.open(itemIndexPath);
      IndexSearcher is=new IndexSearcher(ir);
      Query q=QueryParser.parse("searchWord","text",analyzer);
      Hits hits=is.search(q);
      TestData[] testDatas=new TestData[hits.length()];
      for(int i=0; i<hits.length(); i++){
        Document document=hits.doc(i);
        TestData td=new TestData();
        if(document.get("updated")!=null){
          SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.S");
          td.setRegDate(sdf.parse(document.get("updated")));
        }
        td.setTestUrl(document.get("url"));
        td.setTestTitle(document.get("title"));
        td.setTestDesc(document.get("desc"));
        testDatas[i]=testData;
      }
      ir.close();
      is.close();
    }
    catch(Exception e){
      e.printStackTrace();
    }
  }
  private Document makeDocument(TestData testData){
    Document document=new Document();
    document.add(Field.UnIndexed("updated",testData.getRegDate().toString()));
    document.add(Field.UnIndexed("url",testData.getTestUrl()));
    document.add(Field.UnIndexed("title",testData.getTestName()));
    document.add(Field.UnIndexed("desc",testData.getTestDesc()));
    document.add(Field.UnStored("text",testData.getTestName()+testData.getTestDesc()));
    return document;
  }
}

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   ページ新規作成 全ページ一覧 単語検索 最新ページの一覧   ヘルプ   最新ページのRSS 1.0 最新ページのRSS 2.0 最新ページのRSS Atom
Counter: 639, today: 1, yesterday: 0
最終更新: 2008-11-26 (水) 02:06:16 (JST) (1272d) by aqua
オススメ

おすすめ
カレンダ
前月2012年 5月翌月
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
<今日>
ログイン
ユーザ名:

パスワード:



パスワード紛失

新規登録
天気予報

資料提供天気予報コム
アクセスカウンタ
今日 : 160160160
昨日 : 577577577
総計 : 363714363714363714363714363714363714