我有一个托管在 Windows Azure 上的 ASP.NET MVC 4 站点。我需要在这个站点中进行全文搜索,所以我使用了 Lucene.NET。Lucene 使用 Windows Azure Blob 来存储索引文件。目前,查询需要很长时间(大约 1 分钟)。当我查看 Fiddler 时,我注意到有 285 个请求被发送到 Blob 存储。
我的 Blob 存储目前只有 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();
}
同时,我不确定为什么要花这么长时间。