2015-08-26 8 views
1

В настоящее время я читаю несколько руководств по Apache Lucene. У меня возник вопрос о том, как работает индексация, на что я не смог найти ответ.Apache Lucene Search program

Учитывая набор документов, которые я хочу индексировать, и поиск со строкой. Кажется, программа Lucene должна индексировать все эти документы, а затем выполнять поиск введенной строки поиска при каждом запуске программы. Это не вызовет проблемы с производительностью? или я что-то упускаю?

ответ

1

Нет, это было бы довольно нетипично создавать новый индекс каждый раз, когда вы запускаете программу.

Многие учебники и примеры там используют RAMDirectory, возможно, именно здесь возникает путаница. RAMDirectory создает индекс целиком в памяти. Это отлично подходит для демонстраций и обучающих программ, потому что вам не нужно беспокоиться о файловой системе или какой-либо этой глупости, и это гарантирует, что вы с самого начала работаете с предсказуемым состоянием пустого.

На практике, однако, вы обычно не пользуетесь им. Вместо этого вы использовали бы directory on the file system и open an existing index после создания его в первый раз, вместо того, чтобы создавать новый индекс каждый раз, когда вы запускаете программу.

+0

большое спасибо femtoRgon. В этом есть смысл. – nishanth