1

Windows Azure でホストされている ASP.NET MVC 4 サイトがあります。このサイトでは全文検索が必要だったので、Lucene.NET を使用しました。Lucene は、Windows Azure Blob を使用してインデックス ファイルを格納しています。現在、クエリには長い時間がかかります (約 1 分)。Fiddler を見ると、Blob ストレージに対して 285 件のリクエストが発行されていることがわかります。

現在、ブロブ ストレージには 10 個のファイルしかありません。最大のファイルはわずか 177kb です。また、Dispose 呼び出しに 20 秒ほどかかることにも気付きました。これが私のコードです。あまりおかしなことをしている気がしない

IndexWriter indexWriter = InitializeSearchIndex();
if (indexWriter != null)
{
  foreach (var result in cachedResults)
  {
    var document = new Document();
    document.Add(new Field("Name", result.Name, Field.Store.YES, Field.Index.NOT_ANALYZED));
    document.Add(new Field("ID", result.ID.ToString(), Field.Store.YES, Field.Index.NOT_ANALYZED));
    document.Add(new Field("Description", result.Description, Field.Store.YES, Field.Index.NOT_ANALYZED));
    document.Add(new Field("LastActivity", result.LastActivity, Field.Store.YES, Field.Index.NOT_ANALYZED));
    indexWriter.AddDocument(document);
  }
  indexWriter.Dispose();
}

同時に、なぜこれほど時間がかかるのかわかりません。

4

1 に答える 1