Все дело в удобстве.
Если вы просто хотите создать IndexSearcher
, используйте тот, который принимает путь.
Если у вас уже есть объект Directory
, используйте тот, который принимает Directory
.
И если у вас есть IndexReader
... вы поймете. Просто помните, что если вы указали IndexReader
, вы должны закрыть его самостоятельно после закрытия IndexSearcher
.
Я настоятельно рекомендую взять копию исходного кода Lucene . Он очень читабелен и может ответить на многие из этих вопросов.