Как долго длится время жизни индексов Lucene

#indexing #lucene #lucene.net

#индексирование #lucene #lucene.net

Вопрос:

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

Ответ №1:

Я не совсем понимаю, что вы имеете в виду в отношении «времени жизни». Данные в индексе будут существовать до тех пор, пока вы их не удалите.

Да, существуют методы для удаления документа из индекса и для обновления документа в индексе.

writer.DeleteDocuments(query)
writer.UpdateDocument

Вероятно, стоит упомянуть, что writer.UpdateDocument в конечном итоге Lucene удаляет документ, а затем добавляет новую версию в индекс. Хотя это то, что происходит под капотом, все равно полезно вызывать writer.UpdateDocument , когда требуется обновить документ в индексе, поскольку показывает цель кода.

Таким образом, нет причин постоянно полностью перестраивать индекс, если у вас есть код, который может просто добавлять новые документы по мере необходимости, удалять документы по мере необходимости и обновлять документы по мере необходимости. Lucene поддерживает все эти операции.