Я использую Lucene для индексации своих документов и поиска. На самом деле у меня есть 800k документов, проиндексированных в Lucene. Эти документы имеют несколько полей:
Id : числовое поле для индексации документов
Имя : текстовое поле для хранения и анализа
Описание : как имя
Доступность : числовое поле для фильтрации результатов. Это поле можно обновлять часто, каждый день.
У меня вопрос : как лучше создать фильтр доступности?
1 - добавить эту информацию в индекс и создать фильтр для люценов.
При таком подходе мне приходится обновлять документ (удалять и добавлять, потому что в lucene 3.0.2 нет поддержки обновления) каждый раз, когда меняется «доступность». Какова стоимость переиндексации?
2 - не добавляют эту информацию в индекс, а фильтруют результаты с помощью выбора БД.
Этот подход будет делать много выборов, потому что мне нужно выбрать каждый идентификатор из базы данных, чтобы проверить доступность.
3 - Создать отдельный индекс с идентификатором и доступностью.
Я не знаю, является ли это хорошим решением, но я могу создать индекс со статической информацией, а другой с информацией можно часто обновлять. Я думаю, что лучше обновлять весь документ только потому, что некоторые поля были обновлены.