Извините за простой вопрос, но, похоже, не существует очевидного пути. Согласно документации, рекомендуется хранить в памяти один экземпляр IndexWriter
, который можно использовать снова и снова для обновлений, а не открывать и закрывать его для каждого изменения (что намного дороже).
Однако в документации также указывается, что IndexWriter
следует закрывать в случае возникновения исключения (например, OutOfMemoryException
).
Поэтому мне нужен какой-то способ проверить, действителен ли мой экземпляр IndexWriter
или нет, при условии, что он может быть закрыт другой операцией.
Я понимаю, что получу исключение, если я попытаюсь использовать его, когда он будет закрыт, но вместо того, чтобы потерпеть неудачу, я хотел бы проверить, нужно ли мне создать новый IndexWriter
, прежде чем он мне понадобится, чтобы не происходило сбоев .
Мне кажется, простое IsOpen
свойство / метод было бы таким очевидным дополнением.
Мысли:
Полагаю, что если бы я мог гарантировать, что мой класс - единственное, что способно закрыть IndexWriter
, я мог бы просто установить его на null
, когда он был закрыт, и просто проверить, чтобы он не был null
всякий раз, когда Я использую его, однако это не касается случаев, когда IndexWriter
закрывается сам (если такой случай возможен сейчас или в будущем).
Другая мысль состоит в том, что я мог бы обернуть попытку использовать его в блоке try / catch и использовать исключение, чтобы указать, что его нужно открыть, но это не кажется очень эффективным / элегантным. Какой метод я бы использовал, чтобы проверить действительность IndexWriter
?