我可以同时使用多个线程在Lucene.Net中使用相同的IndexSearcher实例吗?

时间:2009-07-18 07:43:01

标签: lucene lucene.net

我希望能够在Lucene.Net中同时搜索多个客户端和索引

是否可以和线程安全?

可以跨线程共享同一个IndexSearcher实例吗?

3 个答案:

答案 0 :(得分:5)

索引搜索CAN和应该在线程之间共享。

诀窍是决定何时使用索引的新快照刷新搜索者。

我写了一篇文章,展示了我如何编码跨线程共享搜索者,同时确保搜索者总是使用最新的索引。

我并不是说我的解决方案对所有人来说都是最好的 - 我认为这对于搜索量很大的网站来说并不好 - 但它对我的小批量应用程序来说效果很好。

这是文章:

http://ifdefined.com/blog/post/Full-Text-Search-in-ASPNET-using-LuceneNET.aspx

答案 1 :(得分:1)

是。Very much
甚至索引都是!

答案 2 :(得分:0)

您可以同时进行索引和搜索,但在重新创建搜索器之前,搜索器将无法看到您对索引所做的更改。在创建搜索器对象时,Searcher将获得索引的快照。