Что такое идиоматический способ удаления старых документов из индекса Lucene?Как удалить старые документы из Lucene/Lucene.NET
У меня есть поле даты (YYYYMMddhhmmss) на всех документах, и я хотел бы удалить что-нибудь большее, чем один день (например).
Должен ли я выполнять отфильтрованный поиск или перечислять через документы IndexReader?
Уверен, что вопрос тот же, независимо от того, на какой платформе работает Lucene.
Спасибо!
Одна из проблем, которые я вижу с этим подходом, заключается в том, что я получу исключение «TooManyClauses», когда имеется более старых 1024 документов. –
Это действительно зависит от вашей реализации. Мне нужно будет знать специфику, но, как правило, вы можете либо удалить это предупреждение для этих поисков, так как они поддерживают только в любом случае (путем установки большего количества предложений clause) или для более конкретных поисков (YYMMddhh * и т. Д.). Опять же, все зависит от вашей среды и реализации. – synhershko
В результате я немного изменил это, используя MatchAllDocsQuery и RangeFilter. Кажется, работает до сих пор ... –