Installation et compatibilité d'Apache Solr 4.6.0 avec Drupal7


14

J'ai des difficultés à installer Apache Solr. La dernière version que j'ai téléchargée était 4.6.0. Mais toute la documentation et les tutoriels Drupal (voir http://www.youtube.com/watch?v=ori-VvvH1Aw ) parlent de 3.5.0. Alors que 3.5.0 est introuvable sur Internet, 4.6.0 a une structure de répertoires totalement différente, et il n'y a pas de documentation sur la façon d'installer cette dernière version sur un serveur ou sur un WAMP local. Il n'y a aucune mention des versions d'Apache Solr les plus recommandées pour travailler avec Drupal? De l'aide?


Il y a un excellent article ici: lullabot.com/blog/article/installing-solr-use-drupal qui a fonctionné pour moi sur 4.5.1. Si vous souhaitez utiliser Search API Solr, j'ai écrit un exemple d'installation pour Ubuntu 12.04 ici: drupal.org/node/2143715
Dominic Woodman

Réponses:


21

Vous n'êtes pas seul, j'ai dû parcourir Internet et lire plusieurs articles avant de vraiment comprendre tout cela. J'ai essayé environ trois méthodes différentes jusqu'à ce que je comprenne enfin!

Si vous utilisez Debian / Ubuntu (avec Tomcat7), c'est encore plus simple que la plupart des contours. Je préférais cela à Lullabot car lorsque vous l'installez via Ubuntu, c'est en fait un service et moins compliqué :)

Installer Java

apt-get install java7-jdk

Installer Tomcat

apt-get install tomcat7 tomcat7-admin

Une fois cela fait, vous pouvez vous rendre sur le site http://localhost:8080et voir que tout fonctionne correctement.

Remarque: Il est recommandé de pousser le port vers un autre car 8080 est assez courant. Si vous voulez faire ça, utilisez ce code pour ça!

sudo sed -i s/8080/8983/g /var/lib/tomcat7/conf/server.xml

Configurer Tomcat

  1. Vous voudrez réellement créer un compte utilisateur pour Tomcat afin que d'autres personnes doivent se connecter à l'administrateur (cela le rend plus sûr).

    nano /var/lib/tomcat7/conf/tomcat-users.xml

  2. Ajoutez ensuite ces arguments xml entre les <tomcat-users>balises

    <role rolename="manager-gui"/> <role rolename="admin-gui"/> <user username="!!somename!!" password="!!somepassword!!" roles="manager-gui,admin-gui"/>

  3. Vous pouvez maintenant redémarrer tomcat et afficher la page d'administration à l'adresse http://localhost:8983/manager/html

    service tomcat7 restart

Installer Solr

  1. Téléchargez le dernier ApacheSolr ici (quand j'ai écrit cela, je l'ai fait fonctionner avec 4.7)

  2. Extraire les fichiers dans un répertoire

Copier les fichiers de la bibliothèque Solr

Ensuite, nous voulons ajouter les fichiers de la bibliothèque au répertoire de la bibliothèque Tomcat. Remarque: Vous pouvez également utiliser des liens symboliques si vous préférez, mais dans le but de comprendre où tout va, j'ai choisi de le placer directement dans les répertoires

cp ~/solr-4.x.x/example/lib/ext/* /usr/share/tomcat7/lib/

Il peut être judicieux de copier également les bibliothèques java de solr / dist / solrrj-lib / *

cp ~/solr-4.x.x/dist/solrj-lib/* /usr/local/tomcat7/lib/

Copier le fichier d'application Solr WAR

cp ~/solr-4.x.x/dist/solr-4.x.x.war /var/lib/tomcat7/webapps/solr.war

Configurer le noyau Drupal ApacheSolr

  1. Nous devons d'abord copier les exemples de fichiers de configuration d'ApacheSolr.

    mkdir -p /var/lib/tomcat7/solr cp -r ~/solr-4.x.x/example/solr/collection1/conf /var/lib/tomcat7/solr/

  2. Procurez-vous ensuite la dernière version du module apachesolr https://drupal.org/project/apachesolr et décompressez-la

    tar xvf apachesolr-*.tar.gz

  3. Synchronisez les fichiers de configuration d'apachesolr (pour Drupal) avec votre configuration solr

    rsync -av apachesolr/solr-conf/solr-4.x/ /var/lib/tomcat7/solr/conf/

Remarque: J'ai trouvé une erreur dans laquelle ApacheSolr a refusé de démarrer en raison d'erreurs en double. Je l'ai signalé ici, donc vous voudrez peut-être regarder la solution ici car au moment d'écrire ceci, je ne pouvais pas le faire fonctionner sans ça!

  1. Créez un fichier de définition de noyau pour indiquer à Apache Solr quels cœurs sont disponibles.

    nano /var/lib/tomcat7/solr/solr.xml

  2. Collez le code suivant dans ce fichier

    <?xml version="1.0" encoding="UTF-8" ?> <solr persistent="false"> <cores adminPath="/admin/cores"> <core name="!!yourcorename!!" instanceDir="!!yourcoredir!!" /> </cores> </solr>

Créer un répertoire principal Drupal

Cela créera un nouveau noyau dans votre système avec ce nom. Si vous souhaitez ajouter plus, vous pouvez simplement répéter cette étape ainsi que celle ci-dessus.

mkdir /var/lib/tomcat7/solr/!!yourcoredir!!
cp -r /var/lib/tomcat7/solr/conf /var/lib/tomcat7/solr/!!yourcoredir!!/

Faisons-le vivre

  1. Votre au dernier tronçon !! Mettons tomcat7 en sommeil

    service tomcat7 stop

  2. Modifiez maintenant les autorisations sur le répertoire tomcat

    chown -R tomcat7:tomcat7 /var/lib/tomcat7

  3. Redémarrez-le

    service tomcat7 start

Il est en direct

Vous devriez pouvoir aller http://localhost:8983/solrvoir une nouvelle instance principale disponible! Maintenant, vous pouvez aller de l'avant et configurer drupal pour pointer vers cela.

Remarque: votre nouveau noyau est situé àhttp://localhost:8983/solr/!!yourcorename!! pour être utilisé dans le module Drupal ApacheSolr.

Le crédit et les accessoires vont à Pacoup


1
Grand guide. Sous "configurer Tomcat", il manque le xml à l'étape 2: "Ensuite, ajoutez ces arguments xml entre les balises" ... aucun xml donné.
Jordan Magnuson

Hmm c'est là mais vous ne pouvez pas le voir peut-être à cause de votre navigateur? Permettez-moi d'essayer de modifier la sortie pour résoudre ce problème
shaneonabike

En fait, je viens de vérifier et j'utilise les balises de code appropriées?
shaneonabike

Voir capture d'écran: i.imgur.com/s1jlunf.png
Jordan Magnuson

Je l'ai corrigé. le code xml doit être placé entre ``
Jordan Magnuson

1

Les modifications apportées à Solr 4 ont été discutées dans la file d'attente des problèmes: https://drupal.org/node/1676224

Le problème contient un certain nombre de liens vers des sites sandbox et des didacticiels.


1

Voici comment cela est décrit dans la documentation de la communauté Drupal ( Installation de Solr sur Tomcat ):

CentOS

Cette procédure suppose que Tomcat est déjà installé. Si vous ne le faites pas, il est probablement plus facile d'utiliser simplement WHM et de l'installer là-bas et de reconstruire apache. Pointer et cliquer est ce que je dis.

Une fois Tomcat installé, vous pouvez vérifier son installation en allant sur:

domain.com:8080 

Vous devriez voir la page Tomcat par défaut. Sinon, demandez de l'aide à quelqu'un. Si vous ne le faites pas, vous blessez la prochaine personne qui vient avec le même problème. Si nous ne voulions pas aider, nous ne serions pas Open Source.

Téléchargez votre copie de Solr. Si vous ne savez pas où l'obtenir, recherchez-le sur Google.

Pour vous faciliter la tâche maintenant et à l'avenir, trouvez votre installation Tomcat

$ locate tomcat

Créez un lien logiciel comme ceci:

ln -s /my/tomcat/location /tomcat

Si vous l'avez bien fait, vous devriez pouvoir

$ /tomcat

dans sshd et accédez à votre répertoire.

J'utiliserai le /librépertoire pour mon exemple. Si vous n'en avez pas, créez-le avec la mkdir /libcommande.

  1. Extrayez Solr à un emplacement temporaire, pour moi, je viens de récupérer le fichier zip des miroirs Solr.

    $ unzip apache-solr-1.4.1.zip /lib/

    Construisez votre Solr

    $ cd /lib/solr
    $ ant dist (you should see it building something.)
  2. Renommez votre fichier de guerre pour en faciliter l'utilisation.

    $ cd /lib/apache-solr-1.4.1
    $ cd dist
    $ mv apache-solr-1.4.1.war solr.war  (this just renames it without asking you)
    $ dir  (check to make sure it worked. you should see solr.war)
  3. Copier solr.warvers/lib/solr/example

    $ cp solr.war /lib/solr/example
    $ cd /lib/solr/example
    $ dir  (verify that the solr.war is in the directory, you should also see the familiar start.jar file there)
  4. Copiez les fichiers xml depuis votre emplacement apachesolr. Ce sera généralement:

    $ cp /home/YOUR_NAME/www/modules/apachesolr/*.xml /lib/solr/example/solr/conf</code>
  5. Créez un fichier xml dans Tomcat pour lui dire d'exécuter Solr au démarrage de Tomcat

    $ cd /tomcat
    $ cd /conf/Catalina/localhost
    $ vi solr.xml

    Collez-le dans votre nouveau fichier:

    <code>
    <?xml version="1.0" encoding="utf-8"?>
    <Context docBase="/solr/example/solr.war" debug="0" crossContext="true" >
       <Environment name="solr/home" type="java.lang.String" value="/solr/example/solr" override="true" /> 
    </Context>
    </code>

    Les deux valeurs que vous devez personnaliser sont Context :: docBase (pour pointer vers votre fichier .war) et Environment :: value (pour pointer vers votre répertoire solr). Notez que dans cet exemple, le fichier .war se trouve dans le répertoire solr, ce qui est un modèle fin à suivre.

    {Appuyez sur Escapepuis sur :w} puis sur {Appuyez sur la touche Échap, puis :q}

  6. Redémarrez Tomcat à l'aide de WHM pour plus de facilité. C'est sous Services de redémarrage. Alors allez ici:

    yourdomainname.com:8080/solr/admin

    Vous pouvez obtenir cette erreur:

    false in null ----------------------------------------------- -------------- java.lang.RuntimeException: java.io.IOException: impossible de créer le répertoire: / usr / share / solr / data / index à org.apache.solr.core.SolrCore .initIndex (SolrCore.java:398) à org.apache.solr.core.SolrCore. (SolrCore.java:546) à ...

    Pas de panique. Je gatcha!

    Allez à solrconfig.xmlnouveau

    $ cd /solr/example/solr/conf
    $ vi solrconfig.xml

    et modifiez cette ligne:

    <!--<dataDir>${solr.data.dir:./solr/data}</dataDir>-->

    à

    <dataDir>${solr.data.dir:./solr/data}</dataDir>

    Redémarrez Tomcat à nouveau et allez ici:

    yourdomainname.com:8080/solr/admin

    FAITES CECI SI VOUS N'AVEZ PAS DÉJÀ:

    Accédez à votre fichier schema.xml dans /lib/solr/example/solr/conf:

    $ vi schema.xml

    Ajoutez ceci dans la section juste après <field>:

      <field dest="host" source="host"/>
      <field dest="segment" source="segment"/>
      <field dest="boost" source="boost"/>
      <field dest="digest" source="digest"/>
      <field dest="tstamp" source="tstamp"/>

    Enregistrez-le et quittez {Appuyez sur le Escapebouton) :w(Appuyez sur Enter) puis (Appuyez sur le Escapebouton) :q(Appuyez sur Enter )

    Si vous utilisez Nutch, allez ici et installez / configurez nutch .

Pour Apachesolr dans Drupal 6.x, voir: Configurer Drupal 6.x avec Apache Solr sur Tomcat6 et Ubuntu .


1

Toutes les versions de solr devraient fonctionner avec Drupal tant que vous avez un module qui le prend en charge.

Par exemple , le module Apachesolr a des fichiers de configuration pour: Solr: 3.x et 4.x.

Pour le module Search API Solr Search , vous pouvez trouver les fichiers de configuration pour Solr: 3.x, 4.x et 5.x, donc cela ne devrait pas poser de problème.

Comment installer Solr, c'est autre chose. Il y a plusieurs façons de procéder. Quelques exemples ci-dessous.

Installation

OS X

Le moyen le plus simple est d'installer la dernière version d'Apache Solr en utilisant Homebrew, par exemple:

brew install solr
ln -sfv /usr/local/opt/solr/*.plist ~/Library/LaunchAgents
brew services start solr # Or just: solr start

L'instance Solr maintenant installée est accessible à l' adresse: http: // localhost: 8983 /

Debian / Ubuntu

Le moyen le plus simple est d'installer Solr via apt:

sudo apt-get install solr-tomcat

via Puppet

Utilisez le manifeste Puppet pour installer Solr. Voici un exemple de solr4-tomcat.pp .

Manuellement (4.x ou 5.x)

$ VER=4.10.4 # Solr version.
$ TOMCAT_BASE=/var/lib/tomcat7
$ sudo apt-get install tomcat7 tomcat7-admin
$ sudo sed -i.org 's|port=\"8080\"|port=\"8983\"|g' /etc/tomcat?/server.xml
$ sudo mkdir -p /opt/solr/home/collection1/conf /opt/solr/data
$ cd /opt/solr
$ curl -s http://archive.apache.org/dist/lucene/solr/$VER/solr-$VER.tgz | sudo tar zxvf -
$ sudo cp -v /opt/solr/solr-$VER/dist/solr-$VER.war $TOMCAT_BASE/webapps/solr.war
$ sudo cp -v /opt/solr/solr-$VER/example/lib/ext/*.jar /opt/solr/solr-$VER/dist/solrj-lib/*.jar /opt/solr/solr-$VER/example/resources/log4j.properties $TOMCAT_BASE/webapps/solr/WEB-INF/lib
$ curl -s http://ftp.drupal.org/files/projects/search_api_solr-7.x-1.x-dev.tar.gz | sudo tar zxvf -
$ sudo cp -v search_api_solr/solr-conf/4.x/* home/collection1/conf/
$ sudo /etc/init.d/tomcat7 restart

Vérifiez si cela fonctionne à: http: // localhost: 8983


Voir également:

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.