Как восстановить из Solr удаленные индексные файлы? - PullRequest
17 голосов
/ 15 октября 2010

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

java.lang.RuntimeException: java.io.FileNotFoundException: нет сегментов * файл найден в org.apache.lucene.store.NIOFSDirectory@/…/solr/data/index:

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

Ответы [ 4 ]

49 голосов
/ 15 октября 2010

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

0 голосов
/ 08 апреля 2015

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

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

Так что вы, вероятно, должны:

  1. Удалить каталог index или восстановить данные из резервных копий.
  2. Перезагрузите сервер (или хотя бы перезагрузите конфигурацию).
0 голосов
/ 23 декабря 2013

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

привет

Раджат

0 голосов
/ 02 декабря 2013

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...