有時對於乙個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 ...