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 ...