Lucene的大多數文檔建議保留indexReader的一個實例並重用它,因爲打開一個新的Reader的開銷。[Lucene]什麼是IndexReader/Searcher的開銷
但是我發現很難看到這個開銷是基於什麼以及是什麼影響它。
與此相關的是有多少開銷具有開放的IndexReader實際的原因?
這個問題的上下文是: 我們目前運行一個集羣tomcat堆棧,我們從ServletContainer做全文。 這些搜索是在每個客戶端的單獨Lucene索引上完成的,因爲每個客戶端只會搜索他自己的數據。這些索引中的每一個都包含從幾千到(當前)大約100,000個文檔。
由於羣集tomcat節點,任何客戶端都可以連接到任何tomcat節點上。 因此,保持IndexReader打開實際上意味着在每個tomcat節點上保持打開幾千個indexReaders。這似乎是一個壞主意,但不斷重新開放似乎也不是一個好主意。
雖然它可能對我有點改變我們部署Lucene的方式,如果它不需要,我寧願不要。