lucene能夠很好地支援多執行緒/程序 訪問。
乙個索引可以被多個程序的indexreader開啟。乙個程序中,推薦indexreader被單例多執行緒使用。
indexreader類不僅是執行緒安全的,還是執行緒友好的,即友好地支援併發訪問,**中同步**(synchronized)塊並不多。
對於乙個索引來說,一次只能開啟乙個indexwriter。
lucene採用了基於檔案的鎖。如果鎖檔案
write.lock存在於目錄內,那麼建立新的indexwriter就會失敗,丟擲lockobtainfailedexception異常。
lucene允許我們修改鎖的實現,通過呼叫directory,setlockfactory()傳入自定義的子類。
indexreader可以在indexwriter正在修改索引時被開啟。每個indexreader物件將向索引展示自己
被開啟的時間點。該物件只有在writer提交修改後才感知到索引變化。
開啟indexreader'時採用引數create=true,reader就會持續檢查索引的情況。
Lucene 索引的併發讀寫
lucene能夠很好地支援多執行緒 程序 訪問。乙個索引可以被多個程序的indexreader開啟。乙個程序中,推薦indexreader被單例多執行緒使用。indexreader類不僅是執行緒安全的,還是執行緒友好的,即友好地支援併發訪問,中同步 synchronized 塊並不多。對於乙個索引來...
通過佇列解決Lucene檔案併發建立索引
public sealed class searchindexmanager public static searchindexmanager getinstance queue queue new queue 向佇列中新增資料 public void addqueue string id,stri...
Lucene的平行索引
有時對於乙個document來說,有一些field會被頻繁地操作,而另一些field則不會。這時可以將頻繁操作的field和其他field分開存放,而在搜尋時同時檢索這兩部分field而提取出乙個完整的document。這要求兩個索引包含的document的數量必須相同。在建立索引的時候,可以同時建...