Estruturação adequada do uso do Lucene.Net em um site ASP.NET MVC

Estou construindo um site ASP.NET MVC onde pretendo usar o Lucene.Net. Eu imaginei uma maneira de estruturar o uso do Lucene, mas não tenho certeza se minha arquitetura planejada está correta e eficiente.

Meu plano:EmApplication_Start evento no Global.asax: verifico a existência do índice no sistema de arquivos - se ele não existir, crio-o e preencho-o com os documentos extraídos do banco de dados.Quando um novo conteúdo é enviado: eu crio umIndexWriter, preencha um documento, escreva no índice e, finalmente, descarte oIndexWriter. IndexWriters não são reutilizados, pois não consigo imaginar uma boa maneira de fazer isso em um aplicativo ASP.NET MVC.Quando o conteúdo é editado: repito o mesmo processo que o novo conteúdo é enviado, exceto que primeiro apago o conteúdo antigo e adiciono as edições.Quando um usuário procura por conteúdo: eu verificoHttpRuntime.Cache para ver se um usuário já pesquisou esse termo nos últimos 5 minutos - se tiver, retornarei esses resultados; caso contrário, eu crio umIndexReader, crie e execute uma consulta, coloque os resultados emHttpRuntime.Cache, devolva-os ao usuário e, finalmente, descarte oIndexReader. De novo,IndexReaders não são reutilizados.Minhas perguntas:Essa é uma boa estrutura -como posso melhorar isso?Existemquaisquer problemas de desempenho / eficiência Eu deveria estar ciente?Também énão reutilizando os IndexReaders e IndexWriters um enorme cheiro de código?

questionAnswers(2)

yourAnswerToTheQuestion