我试图弄清楚 Lucene 将缓存的查询结果存储在哪里,以及它是如何配置的——以及它缓存了多长时间。
这是针对 ASP.NET 3.5 解决方案的。
我遇到了这个问题:
如果我运行搜索并按特定产品字段对结果进行排序,它似乎在第一次使用每个搜索和排序组合时起作用。如果我然后进入并更改一些产品属性,重新索引并运行相同的搜索和排序,我会以与第一个结果相同的顺序返回产品。
例子
产品 A 被命名为: foo
产品 B 被命名为: bar
对于第一次搜索,按名称 desc 排序。这导致:
- 产品A
- 产品B
现在稍微混合一下数据:
- 将名称更改为:
产品 A 命名: bar
产品 B 命名: foo - 重新索引
- 验证索引是否包含这两个产品的更改。
- 搜索
结果:
- 产品A
- 产品B
由于我更改了名称的字母顺序,因此我期望:
- 产品B
- 产品A
所以我认为 Lucene 正在缓存搜索结果。(顺便说一句,这是一件非常好的事情。)我只需要知道在哪里/如何清除这些结果。我尝试删除索引文件并执行 IISreset 以清除内存,但似乎没有效果。所以我认为在 Lucene 用于缓存的索引之外还有另一组 Lucene 文件。
编辑
我刚刚发现您必须为要作为未标记化排序的字段创建索引。我将该字段标记为标记,因此排序不起作用。