[英]Where does lucene .net cache the search results?
我試圖弄清楚Lucene將緩存的查詢結果存儲在何處,以及如何配置這樣做-以及緩存了多長時間。
這是針對ASP.NET 3.5解決方案的。
我遇到了這個問題:
如果我運行搜索並按特定產品字段對結果進行排序,則似乎在第一次使用每種搜索和排序組合時都可以使用。 然后,如果我進入並更改一些產品屬性,重新索引並運行相同的搜索和排序,我將以與第一個結果相同的順序獲得返回的產品。
產品A的名稱為:foo
產品B的名稱為:bar
對於第一次搜索,請按名稱desc排序。 結果是:
現在稍微混合一下數據:
結果:
由於我更改了名稱的字母順序,因此我期望:
因此,我認為Lucene正在緩存搜索結果。 (其中,順便說一句,是一件非常好的事情。)我只需要知道在哪里/如何清除這些結果。 我嘗試刪除索引文件並進行IISreset清除內存,但似乎沒有效果。 所以我想在Lucene用於緩存的索引之外還有另一組Lucene文件。
我剛剛發現,您必須為要排序的字段創建索引(未標記)。 我將該字段標記為令牌,因此排序無法正常進行。
Lucene.net通過使用QueryFilters具有簡單的緩存機制。 當您對索引進行更改並且您想反映它的更改時,您需要關閉然后重新打開IndexSearcher
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.