Lucene.Net.3.0 NRT with Azure Directory

本文关键字:with Azure Directory NRT Net Lucene | 更新日期: 2023-09-27 18:19:34

我想利用Lucene.Net近实时搜索功能为部署在Azure云服务上的CMS应用程序实现全文搜索。为了做到这一点,我考虑让工厂生成IndexWriter的单例实例,因此读取请求可以使用此单例实例打开/重新打开具有最新未提交或已提交文档的NRT IndexReader。

大多数博客文章都说明了将IndexWriter委派给工作者角色实例,因为这是资源密集型的。因此,我在这里的问题是,我如何在多个Azure角色之间共享一个单例实例,即将使用读/写服务的web角色和在后端处理索引的工作者角色。或者,在使用NRT方法时,将IndexWrtier委托给一个单独的角色是否有意义?

Lucene.Net.3.0 NRT with Azure Directory

不可能将IndexWrtier委托给单独的辅助角色并从另一个实例使用NRT搜索。

但是,您可以将IndexWrtier放置在单独的辅助角色上,该角色将为共享资源(如文件共享、blob存储等)上的文档编制索引,然后在将使用此资源的另一个Web/worker角色上创建IndexReader。

如果你想使用Azure Blob存储,你可以使用Lucene.Net的AzureDirectory库。

同样值得尝试Azure文件服务来存储共享索引。