lucene - 对多个请求使用同一 indexSearcher 实例时出现问题

标签 lucene lucene.net

我在 .net Web 应用程序中使用 Lucene API。 我想对所有请求使用相同的 Indexsearcher 实例。因此,我将 Indexsearcher 实例存储在 http 缓存中。

这是我的代码:

if (HttpRuntime.Cache["IndexSearcher"] == null)
                {
                    searcher = new IndexSearcher(jobIndexFolderPath);
                    HttpRuntime.Cache["IndexSearcher"] = searcher;
                }
                else
                {
                    searcher = (IndexSearcher)HttpRuntime.Cache["IndexSearcher"];
                }

当我执行下面的语句时,出现运行时错误:“对象引用未设置到对象的实例。”

点击次数 = searcher.Search(myQuery);

我在这里缺少什么?

感谢您的阅读!

最佳答案

尝试如下操作:

protected static IndexSearcher searcher = null;
...

if (searcher == null)
{
    searcher = new IndexSearcher(jobIndexFolderPath);
}

关于lucene - 对多个请求使用同一 indexSearcher 实例时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/899542/

相关文章:

c# - Lucene(.Net) 几何(纬度/经度)查询?

c# - 如何更新 lucene.net 索引中的字段而不是更新所有索引的示例

java - WildcardQuery 没有返回正确的结果

java - 事务提交后通过 Hibernate Search (HS) 进行异步索引

java - 根据具有相同名称的特定字段的权重调整 Lucene 搜索结果分数

lucene - 休眠搜索分页+ FullTextSearch +条件

asp.net-mvc - 使用 Asp.NET MVC 网站对 Lucene.NET 进行负载平衡

sql-server-2008 - 如何使用 Lucene.NET 帮助在 Stack Overflow 等网站上实现搜索?

.net-core - 使用 DotNetRDf.Query.FullText 创建 Lucene 索引器时出现异常

Lucene 自定义分析器 - TokenStream 合约​​违规