Solr + DIH + Tika: индексация огромного количества файлов, как обрабатывать удаленные файлы?

У меня есть огромное количество PDF/Word/Excel/и т.д. файлы для индексации (40 ГБ сейчас, но, возможно, до 1000 ГБ в некоторые месяцы), и я рассматривал возможность использования Solr с DataImportHandler и Tika. Я прочитал много тем на эту тему, но есть одна проблема, для которой я до сих пор не нашел решения: если я проиндексирую все файлы (полный или дельта-импорт), удалите файл в файловой системе и снова проиндексируйте (с дельта-импорт), то соответствующий файлу документ не будет удален из индекса.

Вот некоторые возможности:

  • Сделайте полный импорт. Но я хочу избежать этого, насколько это возможно, поскольку я думаю, что это может занять очень много времени (несколько дней, но не очень важно) и потреблять трафик (основная проблема, поскольку файлы находятся на общем сетевом диске).
  • Реализуйте сценарий, который будет проверять для каждого документа в индексе, существует ли соответствующий файл (намного меньше потребляемой полосы пропускания). Но я не знаю, буду ли я это делать внутри или вне Solr, и как.

У вас есть другая идея или способ выполнить второе решение? Заранее спасибо.

Некоторые детали:

  • Я буду использовать параметр «newerThan» FileListEntityProcessor для выполнения дельта-импорта.
  • Если я сохраняю дату, когда документ был проиндексирован, это мне не помогает, потому что, если я не проиндексировал один документ при последнем импорте, это может быть потому, что он был удален ИЛИ потому, что он не изменился (дельта-импорт)
  • У меня есть как сохраненные, так и несохраненные поля, поэтому я не думаю, что использование новой возможности Solr 4.0 для изменения только одного поля в документе может быть решением.

person Vincent Ardiet    schedule 13.11.2012    source источник


Ответы (1)


Думали ли вы об использовании монитора файловой системы для обнаружения удалений и обновления индекса?

Я думаю, что apache.commons.io поддерживает это.
Проверьте apache.commons.io.monitor пакет, FileAlterationObserver и FileAlterationMonitor.

person Marko Bonaci    schedule 13.11.2012