在我的項目中,我們使用Lucene 2.4.1進行全文搜索。這是一個J2EE項目,IndexSearcher創建一次。在後臺,索引每兩分鐘刷新一次(當內容發生變化時)。用戶可以通過頁面上的搜索機制來搜索索引。Lucene似乎在緩存搜索結果 - 爲什麼?
問題是,Lucene返回的結果好像被緩存了一些。
這情景,我注意到:
- 我啓動應用程序,搜索「關鍵字」 - 6個返回結果,
- 指數刷新,使用Luke我看到,有8個結果現在查詢「關鍵字」,
- 我再次使用該應用程序進行搜索,同樣返回6個結果。
我分析了我們的配置,並沒有發現任何地方的緩存。我調試了搜索,並且沒有緩存出代碼,searcher.search
返回了6個結果。
Lucene是否緩存內部結果?我應該檢查什麼屬性等?
我每次更新索引時都會重新創建
IndexSearcher
來解決這個問題。這解決了這個問題。我認爲它的涵蓋範圍幾乎與你所說的相同。 – 2009-11-26 11:01:45reopen()更有效率,因爲重新創建它會導致讀取所有的段文件,但重新打開()知道只讀取自上次打開以來已更新的段。 – Cowan 2009-11-26 11:04:42