Правильное структурирование использования Lucene.Net на сайте ASP.NET MVC
Я создаю сайт ASP.NET MVC, где я планирую использовать Lucene.Net. Я предполагал способ структурировать использование Lucene, но не уверен, что моя запланированная архитектура в порядке и эффективна.
Мой план:НаApplication_Start
событие в Global.asax: я проверяю наличие индекса в файловой системе - если он не существует, я создаю его и заполняю его документами, извлеченными из базы данных.Когда новый контент представлен: я создаюIndexWriter
заполнить документ, написать в указатель и, наконец, избавиться отIndexWriter
. IndexWriters
не используются повторно, так как я не могу представить себе хороший способ сделать это в приложении ASP.NET MVC.Когда содержимое редактируется: я повторяю тот же процесс, что и при отправке нового содержимого, за исключением того, что сначала я удаляю старый контент, а затем добавляю изменения.Когда пользователь ищет контент: я проверяюHttpRuntime.Cache
чтобы увидеть, если пользователь уже искал этот термин за последние 5 минут - если он есть, я возвращаю эти результаты; в противном случае я создаюIndexReader
, создайте и выполните запрос, поместите результаты вHttpRuntime.Cache
верните их пользователю и, наконец, избавьтесь отIndexReader
, Снова,IndexReaders
не используются повторноМои вопросы:Это хорошая структура -как я могу улучшить это?Здесьлюбые проблемы производительности / эффективности Я должен быть в курсе?Также являетсяне использовать IndexReaders и IndexWriters огромный запах кода?