Lucene的平行索引

2021-04-12 15:47:02 字數 678 閱讀 7801

有時對於乙個document來說,有一些field會被頻繁地操作,而另一些field則不會。這時可以將頻繁操作的field和其他field分開存放,而在搜尋時同時檢索這兩部分field而提取出乙個完整的document。

這要求兩個索引包含的document的數量必須相同。

在建立索引的時候,可以同時建立多個indexwriter,將乙個document根據需要拆分成多個包含部分field的document,並將這些document分別新增到不同的索引。

而在搜尋時,則必須借助parallelreader類來整合。

directory dir1=fsdirectory.getdirectory(new file(index_dir1),false);

directory dir2=fsdirectory.getdirectory(new file(index_dir2),false);

parallelreader preader=new parallelreader();

preader.add(indexreader.open(dir1));

preader.add(indexreader.open(dir2));

indexsearcher searcher=new indexsearcher(preader);

之後的操作和一般的搜尋相同。

Lucene索引的建立

lucene索引的建立 1.搜尋引擎之所以檢索速度快其中乙個因素就是對索引的建立。就好像書籍的目錄,可以讓我們迅速定位到內容。這裡引用一張圖說明搜尋過程。從圖中可以很清晰的看到乙個搜尋系統,三個部分 收集資料整理成索引文件,這個過程多是確定你需要檢索的資訊。比如如果你需要檢索圖書館中的書。那麼你可能...

lucene索引合併

lucene 索引合併 關鍵步驟如下 indexwriter fswriter null fs indexwriter ramwriter null ram directory fsdir directory ramdir ramdir new ramdirectory 判斷原索引檔案是否存在 開啟...

Lucene 建立索引

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