Lucene3 0 建立索引及多目錄搜尋

2021-08-27 15:32:45 字數 2074 閱讀 9550

public void index() throws corruptindexexception,

lockobtainfailedexception, ioexception

//optimize()方法是對索引進行優化

indexwriter.optimize();

indexwriter.close();

// 若需要從索引中刪除某乙個或者某一類文件,indexreader提供了兩種方法:

// reader.deletedocument(int docnum)

// reader.deletedocuments(term term)

// 前者是根據文件的編號來刪除該文件,docnum是該文件進入索引時lucene的編號,是按照順序編的;後者是刪除滿足某乙個條件的多個文件。

// 在執行了deletedocument或者deletedocuments方法後,系統會生成乙個*.del的檔案,該檔案中記錄了刪除的文件,但並未從物理上刪除這些文件。此時,這些文件是受保護的,當使用document

// doc = reader.document(i)來訪問這些受保護的文件時,lucene會報「attempt to access a

// deleted document」異常。如果一次需要刪除多個文件時,可以用兩種方法來解決:

// 1. 刪除乙個文件後,用indexwriter的optimize方法來優化索引,這樣我們就可以繼續刪除另乙個文件。

// 2. 先掃瞄整個索引檔案,記錄下需要刪除的文件在索引中的編號。然後,一次性呼叫deletedocument刪除這些文件,再呼叫indexwriter的optimize方法來優化索引。

long endtime = new date().gettime();

system.out.println("\n這花費了" + (endtime - starttime) + " 毫秒增加到索引!");

}booleanquery bq = new booleanquery();

queryparser parser = new queryparser(version.lucene_current, field,

new standardanalyzer(version.lucene_current));

query query = parser.parse("content:王熙鳳");

query q = new termquery(new term("id","100"));

bq.add(q,occur.should);

bq.add(query,occur.should);

// 100表示取前100條資料

topscoredoccollector collector = topscoredoccollector.create(100, true);

document doc;

for (scoredoc sd : docs)

system.out.println();

}long end = new date().gettime();

if(is != null) is.close();

system.out.println("找到 " + collector.gettotalhits()

+ " 條資料,花費時間 " + (end - start)

+ " 秒");

return null;

}/**

* 得到multisearcher多目錄查詢例項

** @param string dirs 要查詢的索引目錄。

* * @return multisearcher

* @throws ioexception

* @auther mailto:[email protected]">gao xuguo

* jan 22, 2010 3:44:16 pm

*/private multisearcher getmultisearcher(string dirs) throws ioexception

// 多目錄查詢

return new multisearcher(searchers);

}

LUCENE3 0 增,刪,查 分頁,改例子

首先引入包 建立索引 我現在資料庫提取一些資料在裡面 建立的檔案路徑,沒有資料夾會給你自動生成乙個 private final static string path e lucene 分詞器支援中英文記住自己建立時候的版本不然可能查不到資料 private standardanalyzer anal...

lucene3 0中檢索方法的使用介紹

queryparser是乙個非常通用的幫助類,他的作用是把使用者輸入的文字轉換為內建的query物件 大多數web搜尋引擎都提供乙個查詢輸入框來讓使用者輸入查詢條件 queryparser內建提供了很多語法使可以使用輸入的各種高階條件的 query。為了保證查詢的正確性,最好用建立索引檔案時同樣的分...

Lucene 建立索引

public class indexer public static string indexdir d luceneindex public static void main string args system.out.println 被索引的文件個數 writer.numdocs catch ...