我刚刚开始使用lucene.net的Azure库(http://code.msdn.microsoft.com/azuredirectory)。到目前为止,我一直在使用自己的自定义代码在Azure Blob上编写Lucene索引。因此,我将Blob复制到Azure Web/Worker角色的LocalStorage,并将阅读/写作文档归为索引。我正在使用我的自定义锁定机制来确保我们之间没有冲突,并写入斑点。我希望Azure图书馆能为我解决这些问题。

但是,在尝试测试应用程序时,我对代码进行了调整以使用复合文件选项,并且每次写入索引时都会创建一个新文件。现在,我的问题是,如果我必须维护索引 - IE保留索引文件的快照并使用主索引损坏,那么我该如何执行此操作。我是否应该保留创建或仅处理最新文件的所有.cfs文件的备份。是否有API调用可以清理斑点以在每次写入索引后保留最新文件?

谢谢Kapil

有帮助吗?

解决方案

回答此问题后,我们最终更改了搜索基础架构并使用了 Windows Azure驱动器. 。我们有一个工人角色,它将使用块存储使用VHD,并在其上托管Lucene.net索引。检查的代码以确保VHD首先安装,并存在索引目录。如果工人的角色失败了,VHD将在60秒后自动卸下,第二个工人角色可以掌握。

此后,我们再次更改了基础架构,并通过SOLR实例搬到了亚马逊进行搜索,但是VHD选项在开发过程中效果很好。它可能在测试和生产方面效果很好,但要求意味着我们需要转移到EC2。

其他提示

我正在使用AzureDirectory在Azure上进行全文索引,而且我也得到了一些奇怪的结果...但是希望这个答案对您有所帮助...

首先,复合文件选项:根据我正在阅读和弄清楚的内容,复合文件是一个大文件,其中包含所有索引数据。对此的提名是写了许多较小的文件(使用indexWriter的setMaxmergedocs(int)函数配置为存储。这样的问题是,一旦您到达了很多文件(我愚蠢地将其设置为约5000个),需要一个年龄才能下载索引(在Azure服务器上,大约需要一分钟的我的开发框...现在跑步20分钟,但仍未完成...)。

至于备份索引,我还没有反对这一点,但是鉴于我们目前有大约500万张记录,而且会增长,我也想知道这一点。如果您使用的是单个复合文件,则可能将文件下载到工作角色,将其the thut tum todays日期上传...如果您有较小的文档集,则可能会逃脱重新索引数据如果出现问题...但是再次取决于数字。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top