1、調整maxbuffereddocs和mergefactor,經過除錯,發現maxbuffereddocs=1000,mergefactor=100時效能較好。
indexmodifier
=new
indexmodifier(
@"c:/indexpath",
newstandardanalyzer(),
true
);indexmodifier.setmaxbuffereddocs(
1000
);indexmodifier.setmergefactor(
100);
2、使用indexmodifier類,執行緒安全的。
indexmodifier.adddocument(document);
3、使用執行緒池threadpool,有效利用硬體的特性。經除錯,5個執行緒的效果是相當好的。
threadpool.setmaxthreads(5,
5);threadpool.queueuserworkitem(waitcallback, state);
4、最後別忘記了優化
indexmodifier.flush();
indexmodifier.optimize();
5、使用ramdirectory並不能帶來多少效能改善,maxbuffereddocs同樣也是設定快取
Lucene系列 index彈性擴充套件
shard與replicaindex擴充套件一般包含橫向擴充套件和縱向擴充套件,將大資料切分成小資料塊,或者將資料分片複製copy到一台機器.橫向擴充套件策略 考慮線上機器執行,此時要保證搜尋正常的work,並向外提供搜尋服務.1.首先應該停掉index write操作,即利用一些訊息佇列儲存操作階...
lucene效能優化
優化搜尋效能 雖然建立索引的操作非常耗時,但是那畢竟只在最初建立時才需要,平時只是少量的維護操作,更何況這些可以放到乙個後台程序處理,並不影響使用者搜尋。我們建立索引的目的就是給使用者搜尋,所以搜尋的效能才是我們最關心的。下面就來 一下如何提高搜尋效能。1 將索引放入記憶體 這是乙個最直觀的想法,因...
提高Lucene索引效能
當索引的檔案不多時,用 lucene 預設的設定就能得到很好的效能。但是,如果索引大量檔案,就得通過一些手段去提高 lucene 索引效能。1 索引效能差的原因 1 lucene 索引過程 在索引檔案的過程中,lucene 不是直接將檔案索引到磁碟上,而是首先快取,然後在寫到磁碟。如上圖所示。2 索...