2016-03-01 80 views
1

我为我的web项目使用Lucene.NET。我希望使用Azure将索引迁移到webjobs,但Lucene使用传统的“文件系统”来存储索引。我可以将Lucene索引存储在数据库或文件系统之外的其他位置吗?

是否有其他选项存储和写入索引,如SQL?

+0

更好的方法是获得一个虚拟机并拥有永久性的磁盘驱动器。如果你选择PaaS,那么你将面临上述问题。你不能把lucene索引放在SQL中。它会谋杀它的目的是诚实的。正如@astaykov所说的那样,azure目录是其中一个选项,但相信我会在表现上很糟糕。我以前使用它,然后我们切换到VM。 – Mandy

+0

你可以试试看弹性搜索吗?它仅在内部使用Lucene。我们实际上转移到弹性搜索的项目之一。老实说,我没有深入的知识。但它提供了基于休息的API来访问lucene索引中的数据。 – Mandy

回答

1

Azure的目录为Lucene.Net: https://github.com/azure-contrib/AzureDirectory

了一下,可能不能很好的支持,但没有,我知道的另一种选择。你不能在数据库中存储Lucene数据(不管数据库)。这没有意义。

+0

我同意 - 不过Lucene是基于“文件系统”的,它主要针对云主机提出挑战或者一般容错。寻找任何方式来读取和写入索引,而没有老式的文件系统。 – user3637002

+1

然后在其上使用抽象层 - 比如Elastic Search或Solr。弹性在Azure虚拟机上运行得非常好。 – astaykov

0

Lucene中的所有I/O操作都是通过Directory类完成的。因此,如果想为索引使用不同的存储引擎,则只需实现一个自定义目录即可。有关如何执行此操作的示例,请查看此项目:MongoDB.Lucene。其他人已经在Azure,Redis等之上实现了它。

相关问题