Lucene.net 和NHibernate搜索并发问题



我有一个Web应用程序,该应用程序使用lucene.net和nhibernate.search作为全文搜索引擎。nhibernate.search是设置,以便每当数据库中进行更改时,都会传播到Lucene索引。

Web应用程序正在使用4个工作过程运行。首先,这是一个问题吗?我注意到Lucene指数与数据库同步不是100%。数据库的一些更改未出现在Lucene索引中。但是,当我手动尝试重新索引数据时,这可以正常工作。

在多进程环境中使用lucene.net有什么并发含义?

这听起来像是一个开放索引作者的问题,将锁定在索引目录上。一个工作过程将锁定其他过程的索引。

lucene.net只要每个索引只有一个作者,就可以在多进程环境中使用。不同的目录实现以不同的方式执行此操作,通常涉及名为write.lock的文件。

一个常见的解决方案是拥有一个单独的搜索过程,该过程处理索引和搜索。

最新更新