2013-01-08 36 views
0

我同時通過Lucene索引約。 5K文件,每個文件大約大小20kB,我需要通過updateDocument方法頻繁更新它們。Lucene updateDocument速度

我正在使用NRT,最多可以有50個線程更新文檔。在100次更新/插入或10分鐘超時後,提交在單獨的線程中完成。

到目前爲止,每個文檔更新的平均持續時間是1秒,eventuall峯值(80秒,需要分析具體文檔)。

有人可以告訴我什麼政策/優化我應該用來加快文件更新?

+0

如果您需要高效,快速的更新,您可能需要查看[NRT](http://wiki.apache.org/lucene-java/NearRealtimeSearch)支持。過去幾年在這方面做了很多工作。 –

+0

我不確定這是這個問題。我相信NRT搜索意在改善活躍度,使更新立即可供搜索。聽起來這裏的問題是更新完成需要很長的時間,5000個更新的負載在大約1.5個小時內完成。那是對的嗎? – femtoRgon

+0

除非您的分析鏈非常昂貴,否則更新一個文檔需要1秒的時間。你可以簡介嗎?什麼是瓶頸? – jpountz

回答

0

我發現當應用程序要求最新的閱讀器時,NRT在內存文檔中刷新,這從索引角度來看是不利的。

切換到正常索引並更改刷新策略,以通過項目計數而不是內存來處理,因爲較大的文檔會導致頻繁的刷新。