相关疑难解决方法(0)

Lucene.Net是否管理多个访问同一索引的线程,一个索引而另一个正在搜索?

当使用Lucene.Net和ASP.NET时,我可以想象一个Web请求可以触发对索引的更新,而另一个Web请求正在执行搜索.Lucene.Net是否内置了管理并发访问的能力,或者我是否必须对其进行管理,以避免"被其他进程使用"错误?

编辑:阅读文档和实验后,我认为这是我所学到的:有两个问题,线程安全和并发.多线程是"安全的",因为你不能对索引做任何坏事.但是,以一个锁定索引的对象为代价是安全的.第二个对象将出现并抛出异常.因此,您不能打开搜索并期望另一个线程中的编写者能够更新索引.如果线程正在忙于更新索引,那么尝试创建搜索器将失败.

此外,搜索者会看到索引在打开时的状态,因此如果您保留它们并更新索引,他们将看不到更新.

我希望我的搜索者能够看到最新的更新.

我的设计,到目前为止似乎工作,是我的作家和搜索者共享锁,以便他们不会失败 - 他们只是等待 - 直到当前的写或搜索完成.

asp.net lucene concurrency lucene.net

15
推荐指数
2
解决办法
6561
查看次数

标签 统计

asp.net ×1

concurrency ×1

lucene ×1

lucene.net ×1