Подтвердить что ты не робот

Как восстановить файлы с удаленным индексом Solr?

Когда я удаляю файлы индекса solr на диске (найденные в /solr/data/index и solr/data/spellchecker), solr выдает исключение всякий раз, когда я пытаюсь сделать запрос к нему:

java.lang.RuntimeException: java.io.FileNotFoundException: нет сегментов * файла, найденного в [email protected]/.../solr/data/index:

Единственный способ, который я нашел для восстановления после этого, - "засеять" каталог data с помощью индексных файлов из других источников. Неважно, где это кажется. Как только я это сделаю, я могу запустить запрос для перезагрузки схемы и восстановления индекса. Так ли это должно работать? Кажется, должен быть способ сказать solr, чтобы восстановить эти файлы с нуля. Может быть, я просто ошибаюсь в своем предположении, что эти файлы не являются частью самого приложения (что подразумевается под именем "данные" )?

4b9b3361

Ответ 1

Solr выкинет это исключение при запуске, если каталог index существует, но пуст. Однако, если вы удалите каталог, Solr создаст его и пустые файлы сегментов при запуске.

Ответ 2

Если вы используете sunrs solr на рельсах, sunspot может переинсталлировать все данные из базы данных в solr. Однако solr standalone не будет знать, где взять данные для переиндексации. Вам понадобится резервная копия данных.

Ответ 3

Проблема может заключаться в файле сегментов, если вы удалите индекс. файлы физически удаляются, но присутствуют в RAM или кеше solr. Избегайте удаления файлов непосредственно из файлов индекса solr физически. используйте delete для удаления индекса, так как это изменит сегменты индекса, и вам не придется перезапускать solr

рассматривает

Раджат

Ответ 4

Exception FileNotFoundException сигнализирует о неудачной попытке открыть файл, обозначенный указанным путем. Таким образом, ваш индекс недействителен или поврежден.

NIOFSDirectory класс используется для чтения и записи индексных файлов. Каталог создается в названном месте, если он еще не существует.

Итак, вы должны:

  • Удалите каталог index или восстановите данные из резервных копий.
  • Перезагрузите сервер (или, по крайней мере, перезагрузите конфигурацию).