2010-10-15 9 views
17

Al eliminar los archivos de índice de Solr en el disco, (que se encuentra en /solr/data/index y solr/data/spellchecker), Solr se emite una excepción cada vez que intento hacer una solicitud a la misma:¿Cómo recuperarse de los archivos de índice eliminados de Solr?

java.lang.RuntimeException: java.io.FileNotFoundException : hay segmentos * archivo encontrado en [email protected]/.../solr/data/index:

la única forma que he encontrado para recuperarse de esto es “semilla” de la data directorio con los archivos de índice de otros lugares. Realmente no importa donde parece. Una vez que hago esto, puedo ejecutar una consulta para volver a cargar el esquema y regenerar el índice. ¿Es así como se supone que esto funciona? Parece que debería haber una forma de decirle a Solr que regenere esos archivos desde cero. Tal vez estoy equivocado en mi suposición de que estos archivos no son parte de la aplicación en sí (algo así como el nombre de "datos")?

Respuesta

48

Solr arrojará esa excepción al inicio si el directorio index existe pero está vacío. Sin embargo, si elimina el directorio, Solr lo creará y los archivos de segmentos vacíos al inicio.

+1

Este fue mi problema, solo una nota para los demás, tuve que 1) Detener solr, 2) eliminar el directorio, 3) iniciar solr. Cuando ejecutaba Solr y borraba el directorio e intentaba forzar un índice, seguía fallando. Gracias por la ayuda =] –

+0

¡Esta es definitivamente la solución! Buena atrapada :] – tfont

0

Si está utilizando sol de manchas solares en los rieles, las manchas solares pueden reindexar todos los datos de la base de datos en solr. Sin embargo, Solr independiente no sabría dónde extraer los datos para reindexar. Necesitaría una copia de seguridad de los datos.

0

El problema puede estar en el archivo de segmentos si elimina el índice. los archivos se eliminan físicamente pero están presentes en el ram o caché del solr. Evite borrar archivos directamente de archivos de índice de solr físicamente. utilizar consulta de eliminación para eliminar el índice, haciendo esto alteraría los segmentos del índice y que no se tenga que reiniciar el Solr

respecto

Rājat

0

excepción FileNotFoundException señales de que un intento de abrir el archivo denotado por un nombre de ruta especificado ha fallado. Entonces, su índice no es válido o está dañado.

NIOFSDirectory clase se utiliza para leer y escribir archivos de índice. El directorio se crea en la ubicación indicada si aún no existe.

por lo que debe probablemente:

  1. eliminar el directorio index o restaurar los datos de copias de seguridad.
  2. Reinicie el servidor (o al menos vuelva a cargar la configuración).
Cuestiones relacionadas