我想利用Lucene.Net近实时搜索功能实现部署在Azure云服务上的CMS应用程序的全文搜索。为了做到这一点,我考虑让工厂生成IndexWriter的单例实例,因此读取请求可以使用此单例实例打开/重新打开具有最新未提交或已提交文档的NRT IndexReader。
大多数博客文章都说明了将IndexWriter委派给辅助角色实例,因为它是资源密集型的。所以我的问题是如何在多个Azure角色之间共享单个实例,即将使用读/写服务的Web角色和处理后端索引的辅助角色。或者,在使用NRT方法时,将IndexWrtier委派给单独的角色是否有意义?
答案 0 :(得分:0)
无法将IndexWrtier委派给单独的辅助角色,并使用其他实例的NRT搜索。
但是,您可以将IndexWrtier放在单独的辅助角色上,该角色将索引共享资源上的文档(如文件共享,blob存储等),然后在将使用此资源的另一个Web /辅助角色上创建IndexReader。
如果要使用Azure Blob存储,可以使用AzureDirectory Library for Lucene.Net。
尝试Azure File Service来存储共享索引也是值得的。