我想为部署在Azure云服务上的内容管理系统应用程序实现全文搜索,使用Lucene.Net近实时搜索功能。为了做到这一点,我考虑过让工厂生成一个IndexWriter的单例实例,这样读请求就可以使用这个单例实例来打开/重新打开具有最新的未提交或已提交文档的IndexReader。
大多数博客文章都演示了将IndexWriter委托给工作者角色实例,因为它是资源密集型的。所以我这里的问题是如何在多个Azure角色之间共享单个实例,即将使用读/写服务的web角色和在后端处理索引的工作者角色。或者,在使用NRT方法时,将IndexWrtier委托给一个单独的角色是否有意义?
发布于 2014-08-26 15:27:20
不能将IndexWrtier委派给单独的工作角色并从另一个实例中使用NRT搜索。
但是,您可以将IndexWrtier放在将为共享资源(如文件共享、blob存储等)上文档编制索引的单独工作角色上,然后在将使用该资源的另一个IndexReader /工作角色上创建IndexReader。
如果你想使用Azure Blob存储,你可以使用AzureDirectory Library for Lucene.Net。
尝试使用Azure File Service来存储共享索引也是值得的。
https://stackoverflow.com/questions/25498748
复制相似问题