3

我正在使用 Lucene.Net 的 Azure 库,但是当我尝试附加到索引时遇到了 FileNotFound 异常。

FSDirectory 一切正常。我有大量针对 RAMDirectory 的单元测试。

这里是基础设施:

  1. Single Role 维护 Index Writer Singleton。
  2. 单独的 Web 服务维护一个 Searcher 实例,该实例以只读模式指向同一索引。
  3. 当发生更改事件时,索引编写者角色会获取更改、修改索引并提交。
  4. 一段时间后,搜索器会回收以获取最新的索引更改。

异常:更改后,从那时起,我从 AzureDirectory 收到 FileNotFound 异常。该文件报告为未找到更改,但一个示例是“_h.cfs”。当搜索器回收并尝试重新加载索引时,我也会在搜索器上收到 FileNotFound 异常......

几个其他要点: 1. 完整索引的初始创建工作正常。2. 搜索最初创建的索引工作正常。3. 我正在使用 Lucene .Net V. 2.9.2

有什么想法或建议吗?不幸的是,这是我在发布项目之前需要解决的最后一个问题......

谢谢,蒂姆

4

1 回答 1

1

我使用https://azuredirectory.codeplex.com/遇到了同样的问题

我最终使用 localresource(您的 web/worker 角色上的文件夹)将整个索引加载到 blobstorage 和从 blobstorage 加载,然后使用 lucene.net 中的内置 indexwriter 并每隔几分钟将文件推回 blob 存储,所以其他读者可以加载和搜索索引。

总体而言,AzureDirectory 实现基本上只是一个玩具示例,需要更多工作才能在生产环境中发挥作用。

于 2012-10-11T03:34:42.927 回答