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();
}
同時に、なぜこれほど時間がかかるのかわかりません。