2010-04-26 2 views
13

J'ai passé toute la matinée à essayer de configurer plusieurs noyaux sur une installation SOLR qui fonctionne sous le serveur Apache Tomcat sans succès. Mon solr.xml ressemble à ceci:Configuration de plusieurs coeurs de SOLC Tomcat

<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> 

Quelle est la bonne structure de répertoires? Dois-je changer quelque chose dans le fichier solrconfig.xml?

+0

Quelle est la version de Tomcat et Apache associée? J'ai un problème similaire, mais je ne peux pas trouver ces fichiers ou paramètres de configuration du tout. Je suis sur Tomcat6, Solr 3.6, Ubuntu. –

Répondre

10

Vérifiez que vos valeurs instanceDir sont relatives à -Dsolr.solr.home. Si -Dsolr.solr.home est 'multicore', alors votre instanceDir devrait être seulement "core0".

Si vous mettez votre dossier de données dans votre INSTANCEDIR, vous ne devriez pas avoir à spécifier son chemin:

<?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> 

Vous ne devriez pas avoir à mettre quoi que ce soit dans solrconfig.xml. Mais si vous avez besoin de configurer un gestionnaire indépendamment de l'emplacement principal, vous pouvez utiliser la variable $ {solr.core.instanceDir}.

MISE À JOUR

Pour définir la variable solr.solr.home avec Tomcat, utilisez la variable d'environnement JAVA_OPTS avant de commencer Tomcat:

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

Assurez-vous que "multicore" est réglé correctement par rapport à le répertoire de travail. Par exemple, si solr.solr.home = 'multicore', vous devez lancer Tomcat à partir du répertoire où se trouve "multicore".

+0

Merci pour la réponse rapide Pascal. Comment puis-je vérifier ce qu'est mon solr.solr.home? Je lance solr sur Tomcat et non Jetty donc je ne peux pas le définir sur la ligne de commande lors de l'exécution de start.jar. Je tente le solr.xml ci-dessus, mais toujours l'erreur suivante lors de la tentative de visite http: // devel: 12345/solr/core0/admin/ type Rapport d'état message/solr/core0/admin/ description Le demandé resource (/ solr/core0/admin /) n'est pas disponible. Des idées quoi que ce soit? – Sfairas

+0

Avec Tomcat, vous pouvez utiliser la variable d'environnement JAVA_OPTS pour définir -Dsolr.solr.à la maison avant d'appeler le script catalina. –

+0

OK J'ai mis le JAVA_OPTS = '- Dsolr.solr.home = multicore' mais je n'arrive toujours pas à le faire fonctionner. Je sais que c'est un problème de configuration mais je n'arrive pas à comprendre ce qui me manque ici. – Sfairas

6

C'est un peu tard dans le jeu, mais je viens de mettre en place un billet de blog avec instructions for a multicore SOLR instance on Tomcat qui se lit comme suit:

  1. téléchargé et installé le 32 bits/64 bits Windows Services Installer pour Tomcat
  2. installé Tomcat sur le serveur (pas instructions spéciales ici - il suffit d'exécuter l'installation et de l'installer partout où vous le souhaitez )
  3. Vérifié l'installation de Tomcat en allant à http: // localhost: 8080
  4. Modifier Tomcat de conf/server.xml et ajoutez URIEncoding = "UTF-8" au <Connecteur> élément comme indiqué ici
  5. Télécharger SOLR de l'un des miroirs trouvés ici   (téléchargé le apache-solr-1.4.1 .zip package ) et décompressez le package
  6. Créer un répertoire dans lequel SOLR sera accueilli à partir (dans mon cas je e: \ inetpub \ SOLR)
  7. Copie le contenu du exemple \ solr à votre répertoire Répertoire d'hôte SOLR (dans mon cas e: \ inetpub \ solr)
  8. Cr répertoires sous votre répertoire hôte SOLR pour chacun des cœurs que vous souhaitez créer (j'ai créé une douzaine de dossiers pour chaque core que je voulais pour créer dans le répertoire e: \ inetpub \ solr.   Les répertoires inclus en-US, en-CA, en-GB, etc.)
  9. Copiez le solr.xml fichier du exemple \ multicoeur répertoire et collez-le dans votre répertoire SOLR hôte (e: \ inetpub \ solr pour mon exemple)
  10. Modifier le fichier solr.xml pour inclure les informations pour chaque des noyaux créés (si vous avez créé un dossier sous votre hôte pour un noyau nommé en-US, puis ajoutez ce qui suit dans les < noyaux élément > dans le solr.xml fichier: < co re name = "fr-FR" INSTANCEDIR = "fr-FR"/>)
  11. Arrêtez le service Tomcat
  12. Copiez le * solr * .war fichier de le   dist répertoire dans le package décompressé SOLR à votre Tomcat webapps dossier
  13. Renommez le * solr fichier * .war solr.war
  14. dans la zone de notification dans la partie droite de la barre de tâches de Windows, cliquez droit sur le Apache Tomcat 7 et sélectionnez Configurer
  15. Cliquez sur l'onglet Java et ajoutez ce qui suit aux Options Java texte boîte: -Dsolr.solr.home = e: \ inetpub \ solr (changement e: \ inetpub \ solr à chaque fois que votre SOLR est hébergé)
  16. Cliquez OK dans la boîte de dialogue, puis le démarrage de service Tomcat
  17. Ouvrez le conf \ solrconfig.xml fichiers sous chacun des les cœurs que vous avez créés et modifiez l'élément dataDir pour pointer vers un répertoire spécifique .   Si cette étape n'est pas terminée, tous vos cœurs utiliseront le même magasin de données pour leurs données.
  18. Arrêter et redémarrer le service Tomcat
  19. Vérifiez que vos cœurs sont en cours d'exécution en exécutant une requête à partir du navigateur Web http: // localhost: 8080/Solr/fr-fr/select q = *: *   (remplacez "en-US" par ce que vous avez nommé l'un de vos cœurs)
Questions connexes