C# lucene.net在哪里缓存搜索结果?
我试图弄清楚Lucene在哪里存储缓存的查询结果,以及它是如何配置的,以及缓存多长时间。C# lucene.net在哪里缓存搜索结果?,c#,asp.net,lucene.net,C#,Asp.net,Lucene.net,我试图弄清楚Lucene在哪里存储缓存的查询结果,以及它是如何配置的,以及缓存多长时间。 这是针对ASP.NET 3.5解决方案的。 我遇到了这个问题: 如果我运行搜索并按特定的产品字段对结果进行排序,那么在第一次使用每个搜索和排序组合时,它似乎都会起作用。如果我随后进入并更改一些产品属性,重新编制索引并运行相同的搜索和排序,我将以与第一个结果相同的顺序返回产品。 实例 产品A的名称为:foo 产品B的名称为:bar 对于第一次搜索,按名称desc排序。结果为: 产品A 产品B 现在将数
这是针对ASP.NET 3.5解决方案的。
我遇到了这个问题:
如果我运行搜索并按特定的产品字段对结果进行排序,那么在第一次使用每个搜索和排序组合时,它似乎都会起作用。如果我随后进入并更改一些产品属性,重新编制索引并运行相同的搜索和排序,我将以与第一个结果相同的顺序返回产品。
实例 产品A的名称为:foo
产品B的名称为:bar
对于第一次搜索,按名称desc排序。结果为:
现在将数据稍微混合一下:
产品名称:bar
产品乙名称:富
我刚刚发现,您必须为希望排序为未标记的字段创建索引。我将字段标记化,因此排序不起作用。Lucene.net有一个简单的缓存机制,使用queryfilter。当对索引进行更改时,您需要关闭并重新打开IndexSearcher,并且您希望反映其更改执行IISreset不会清除它吗?或者是因为它被保存在一个文件中,我必须打开和关闭IndexSearcher,然后文件会被重写?我只是检查了IndexSearcher的使用位置-它们会为每个查询重新创建。没有使用任何Close()方法-它们只是在超出范围时关闭。