В документации Lucene говорится, что быстрее всего использовать один экземпляр IndexWriter и IndexSearcher в приложении.
В данный момент у меня постоянно открыт статический экземпляр IndexWriter
, а статический экземпляр IndexSearcher
всегда остается открытым, но перестраивается, если IndexWriter
выполняет какие-либо операции CRUD с индексом. , Я реализовал метод Dispose в своем классе управления индексами, который закрывает и IndexWriter
, и IndexSearcher
, когда приложение заканчивается (однако это веб-приложение, так что это потенциально месяцы работы без вызова).
Это звучит как разумный способ делать что-то? А также использование статических экземпляров создает проблемы с многопоточностью ..? То есть я должен заблокировать мой писатель и искатель при использовании?