Estructuración adecuada del uso de Lucene.Net en un sitio ASP.NET MVC

Estoy construyendo un sitio ASP.NET MVC donde planeo usar Lucene.Net. He imaginado una forma de estructurar el uso de Lucene, pero no estoy seguro de si mi arquitectura planificada es correcta y eficiente.

Mi plan:EnApplication_Start evento en Global.asax: compruebo la existencia del índice en el sistema de archivos; si no existe, lo creo y lo lleno con documentos extraídos de la base de datos.Cuando se envía contenido nuevo: creo unIndexWriter, llene un documento, escriba en el índice y finalmente elimine elIndexWriter. IndexWriters no se reutilizan, ya que no puedo imaginar una buena manera de hacerlo en una aplicación ASP.NET MVC.Cuando se edita el contenido: repito el mismo proceso que cuando se envía contenido nuevo, excepto que primero elimino el contenido anterior y luego agrego las ediciones.Cuando un usuario busca contenido: verificoHttpRuntime.Cache para ver si un usuario ya ha buscado este término en los últimos 5 minutos; si lo ha hecho, devuelvo esos resultados; de lo contrario, creo unIndexReader, compila y ejecuta una consulta, coloca los resultados enHttpRuntime.Cache, devuélvalos al usuario y finalmente elimine elIndexReader. Una vez más,IndexReaders No se reutilizan.Mis preguntas:¿Es esa una buena estructura?¿Cómo puedo mejorarlo?Haycualquier problema de rendimiento / eficiencia Debo estar al tanto?También esno reutilizar IndexReaders e IndexWriters un gran olor a código?

Respuestas a la pregunta(2)

Su respuesta a la pregunta