簡體   English   中英

lucene .net在哪里緩存搜索結果?

[英]Where does lucene .net cache the search results?

我試圖弄清楚Lucene將緩存的查詢結果存儲在何處,以及如何配置這樣做-以及緩存了多長時間。

這是針對ASP.NET 3.5解決方案的。

我遇到了這個問題:
如果我運行搜索並按特定產品字段對結果進行排序,則似乎在第一次使用每種搜索和排序組合時都可以使用。 然后,如果我進入並更改一些產品屬性,重新索引並運行相同的搜索和排序,我將以與第一個結果相同的順序獲得返回的產品。

產品A的名稱為:foo
產品B的名稱為:bar

對於第一次搜索,請按名稱desc排序。 結果是:

  1. 產品A
  2. 產品B


現在稍微混合一下數據:

  1. 將名稱更改為:
    產品A的名稱:bar
    產品B的名稱為:foo
  2. 重新索引
  3. 驗證索引是否包含這兩個產品的更改。
  4. 搜索

結果:

  1. 產品A
  2. 產品B

由於我更改了名稱的字母順序,因此我期望:

  1. 產品B
  2. 產品A

因此,我認為Lucene正在緩存搜索結果。 (其中,順便說一句,是一件非常好的事情。)我只需要知道在哪里/如何清除這些結果。 我嘗試刪除索引文件並進行IISreset清除內存,但似乎沒有效果。 所以我想在Lucene用於緩存的索引之外還有另一組Lucene文件。

編輯

我剛剛發現,您必須為要排序的字段創建索引(未標記)。 我將該字段標記為令牌,因此排序無法正常進行。

Lucene.net通過使用QueryFilters具有簡單的緩存機制。 當您對索引進行更改並且您想反映它的更改時,您需要關閉然后重新打開IndexSearcher

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM