3

Lucene.Net 用の Azure ライブラリを使用していますが、インデックスに追加しようとすると FileNotFound 例外が発生します。

すべてが FSDirectory でうまく機能します。RAMDirectory に対してうまく機能する単体テストがたくさんあります。

インフラストラクチャは次のとおりです。

  1. Single Role は Index Writer Singleton を維持します。
  2. 別の Web サービスは、読み取り専用モードで同じインデックスを指すサーチャーの単一インスタンスを維持します。
  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 /ワーカーロール上のフォルダー)を使用してインデックス全体をblobstorageとの間でロードし、lucene.netに組み込まれているインデックスライターを使用して、ファイルを数分ごとにblobストレージにプッシュします。リーダーはインデックスをロードして検索できます。

全体として、AzureDirectoryの実装は基本的に単なるおもちゃの例であり、本番環境で役立つようにするにはさらに多くの作業が必要でした。

于 2012-10-11T03:34:42.927 に答える