2010-04-26 10 views
13

He pasado toda la mañana tratando de configurar múltiples núcleos en una instalación SOLR que se ejecuta bajo el servidor Apache Tomcat sin éxito. Mi solr.xml se ve así:Tomcat configuración múltiple de núcleos SOLR

<solr persistent="false" sharedLib="lib"> 
    <cores adminPath="/admin/cores"> 
    <core name="core0" instanceDir="/multicore/core0"> 
     <property name="dataDir" value="/multicore/core0/data" /> 
    </core> 
    <core name="core1" instanceDir="/multicore/core1"> 
     <property name="dataDir" value="/multicore/core1/data" /> 
    </core> 
    </cores> 
</solr> 

¿Cuál es la estructura de directorios correcta? ¿Debo hacer algo para cambiar en solrconfig.xml?

+0

¿Qué versión de Tomcat y Apache se relaciona con? Tengo un problema similar, pero no puedo ubicar estos archivos o configuraciones. Estoy en Tomcat6, Solr 3.6, Ubuntu. –

Respuesta

10

Compruebe que los valores de su instanceDir sean relativos a -Dsolr.solr.home. Si -Dsolr.solr.home es 'multinúcleo', entonces su dir instancia debe ser solo "core0".

Si usted pone su carpeta de datos dentro de su instanceDir, que no debería tener que especificar su ruta:

<?xml version='1.0' encoding='UTF-8'?> 
<solr persistent="true"> 
<cores adminPath="/admin/cores"> 
    <core name="core0" instanceDir="core0" /> 
    <core name="core1" instanceDir="core1" /> 
</cores> 
</solr> 

Usted no debería tener que configurar nada en solrconfig.xml. Pero si necesita configurar un manejador independientemente de la ubicación central, puede usar la variable $ {solr.core.instanceDir}.

ACTUALIZACIÓN

Para establecer la variable solr.solr.home con Tomcat, utilice la variable de entorno JAVA_OPTS antes de iniciar Tomcat:

JAVA_OPTS="-Dsolr.solr.home=multicore" 
export JAVA_OPTS 
tomcat/bin/catalina.sh start 

Asegúrese de que "multi-núcleo" está ajustado correctamente en relación con el directorio de trabajo. Por ejemplo, si solr.solr.home = 'multicore', debe iniciar Tomcat desde el directorio donde se encuentra "multicore".

+0

Gracias por la rápida respuesta de Pascal. ¿Cómo puedo verificar cuál es mi solr.solr.home? Estoy ejecutando solr en Tomcat y no en Jetty, así que no puedo configurar eso en la línea de comando cuando ejecuto start.jar. Intento el solr.xml anterior pero sigo recibiendo el siguiente error cuando intento visitar http: // desarrollo: 12345/solr/core0/admin/ tipo Informe de estado mensaje/solr/core0/admin/ descripción El solicitado resource (/ solr/core0/admin /) no está disponible. ¿Alguna idea de lo que podría ser? – Sfairas

+0

Con Tomcat, puede usar la variable de entorno JAVA_OPTS para establecer -Dsolr.solr.inicio antes de llamar a la secuencia de comandos catalina. –

+0

OK Establezco JAVA_OPTS = '- Dsolr.solr.home = multicore' pero aún no puedo hacer que funcione. Sé que es un problema de configuración, pero no puedo entender lo que me falta aquí. – Sfairas

6

Esto es un poco tarde en el juego, pero sólo hay que poner un post con instructions for a multicore SOLR instance on Tomcat que dice:

  1. descargado e instalado el 32-bit/64-bit de Windows Service instalador para Tomcat
  2. instalada en el servidor Tomcat (no hay instrucciones especiales aquí - sólo ejecutar la instalación e instalar donde quiera lo desea)
  3. de verificar la instalación de Tomcat por ir a http: // localhost: 8080
  4. Editar Tomcat de conf/server.xml y añadir URIEncoding = "UTF-8" a la > elemento < conector como se muestra aquí
  5. Descargar SOLR de uno de los espejos que se encuentran aquí   (descargado el Apache Solr-1.4.1- .zip paquete) y descomprimir el paquete
  6. Crear un directorio donde SOLR será organizada a partir de (en mi caso he usado e: \ inetpub \ Solr)
  7. Copia los contenidos del directorio ejemplo \ Solr a su SOLR directorio de host (en mi caso e: \ inetpub \ solr)
  8. Cr eate directorios en su directorio de host SOLR para cada uno de los núcleos que desea crear (Creé una docena o más de carpetas para cada núcleo que quería para crear en el directorio e: \ inetpub \ solr.   Los directorios incluidos en-US, en-CA, en-GB, etc.)
  9. Copie solr.xml archivo de la ejemplo directorio \ multinúcleo y pegarlo en el directorio del servidor SOLR (E: \ inetpub \ Solr para mi ejemplo)
  10. Editar el archivo solr.xml para incluir la información de cada de los núcleos que ha creado (si ha creado una carpeta bajo su anfitrión para un núcleo llamado es-, a continuación, añadir lo siguiente bajo las < núcleos > elemento en el archivo solr.xml: < co re name = "en-US" instanceDir = "en-US"/>)
  11. Detener el servicio Tomcat
  12. Copiar el * Solr * .war archivo desde el directorio   dist en el paquete descomprimido SOLR a sus aplicaciones web Tomcat carpeta
  13. Cambie el nombre del archivo * Solr * .war a solr.war
  14. en el área de notificación en el lado derecho de la barra de tareas de Windows, haga clic en el Apache Tomcat 7 icono y seleccione Configurar
  15. Haga clic en el Java ficha y añadir lo siguiente a las opciones de Java texto cuadro: -Dsolr.solr.home = E: \ inetpub \ Solr (modificar e: \ inetpub \ Solr a donde está alojado el SOLR)
  16. Haga clic en OK en el diálogo y luego puesta en marcha del servicio de Tomcat
  17. Abra la conf \ solrconfig.xml archivos bajo cada una de las núcleos que ha creado y cambie el elemento dataDir para que apunte a un directorio específico .   Si este paso no se completa, todos sus núcleos utilizarán el mismo almacén de datos para sus datos .
  18. parada y re-iniciar el servicio de Tomcat
  19. prueba que sus núcleos están ejecutando mediante la ejecución de una consulta desde el navegador web http: // localhost: 8080/Solr/es-ES/seleccione q = *: *   (reemplace "en-US" con el nombre que le asignó uno de sus núcleos)
Cuestiones relacionadas