Ответ 1
Solr выкинет это исключение при запуске, если каталог index
существует, но пуст. Однако, если вы удалите каталог, Solr создаст его и пустые файлы сегментов при запуске.
Когда я удаляю файлы индекса solr на диске (найденные в /solr/data/index
и solr/data/spellchecker
), solr выдает исключение всякий раз, когда я пытаюсь сделать запрос к нему:
java.lang.RuntimeException: java.io.FileNotFoundException: нет сегментов * файла, найденного в [email protected]/.../solr/data/index:
Единственный способ, который я нашел для восстановления после этого, - "засеять" каталог data
с помощью индексных файлов из других источников. Неважно, где это кажется. Как только я это сделаю, я могу запустить запрос для перезагрузки схемы и восстановления индекса. Так ли это должно работать? Кажется, должен быть способ сказать solr, чтобы восстановить эти файлы с нуля. Может быть, я просто ошибаюсь в своем предположении, что эти файлы не являются частью самого приложения (что подразумевается под именем "данные" )?
Solr выкинет это исключение при запуске, если каталог index
существует, но пуст. Однако, если вы удалите каталог, Solr создаст его и пустые файлы сегментов при запуске.
Если вы используете sunrs solr на рельсах, sunspot может переинсталлировать все данные из базы данных в solr. Однако solr standalone не будет знать, где взять данные для переиндексации. Вам понадобится резервная копия данных.
Проблема может заключаться в файле сегментов, если вы удалите индекс. файлы физически удаляются, но присутствуют в RAM или кеше solr. Избегайте удаления файлов непосредственно из файлов индекса solr физически. используйте delete для удаления индекса, так как это изменит сегменты индекса, и вам не придется перезапускать solr
рассматривает
Раджат
Exception FileNotFoundException сигнализирует о неудачной попытке открыть файл, обозначенный указанным путем. Таким образом, ваш индекс недействителен или поврежден.
NIOFSDirectory класс используется для чтения и записи индексных файлов. Каталог создается в названном месте, если он еще не существует.
Итак, вы должны:
index
или восстановите данные из резервных копий.