Recherche apache solr pour drupal 6 sous Ubuntu 10.04
J’ai décidé d’écrire ce petit guide pour l’intégration du module de recherche apache solr sous drupal parce que je devais l’intégrer à un projet et que la procédure expliquée à même le module m’a laissé un peu sur mon apétit. En efftet, si on suit le petit guide, tout se passe bien sauf pour un détail : l’installation du serveur apache solr. Je voulais pouvoir l’installer comme un service et non avoir à le partir directement avec la commande java, ce qui est très peu pratique pour un site web « live ». Seul bémol, cela vous prendra un serveur dédié ou un VPS pour povoir procéder à cette installation sinon, bien sûr, sur votre serveur local.
Installation de java
Tout d’abord, il faut avoir une version d’un java jdk pour rouler le serveur apache solr. Personnellement, j’y ai été avec celle de sun, mais vous pouvez (j’imagine !) utiliser la version qui vous convient.
su root apt-get install sun-java6-jdk
Assurez-vous que tout s’est bien passé en tapant la commande
java -version
Vous devriez voir des informations concernant la version de java nouvellement installée.
Installation et configuration du serveur solr-jetty
apt-get install solr-jetty
À la fin de l’installation, le serveur ne démarrera pas puisqu’il faut aller éditer le fichier de configuration d’abord.
nano /etc/default/jetty
Voici les paramètres de configuration que j’ai utilisé
#mettre a 0 pour que le serveur puisse démarrer NO_START=0 #vous pouvez le laisser à 8080, mais par défaut, le module drupal utilise 8983 JETTY_PORT=8983 #mettre le chemin de votre java jdk JAVA_HOME=/usr/lib/jvm/java-6-sun
Démarrez le serveur solr-jetty
/etc/init.d/jetty start
Vérifier que tout fonctionne bien au http://localhost:8983/solr où 8983 est le numero du port que vous avez mis dans la configuration plus haut. Vous devriez arriver sur une page de bienvenue disant Welcome to Solr avec un lien vers l’admin. Si cela ne fonctionne pas, revérifiez vos paramètres de configuration. Vous pouvez vérifier aussi que tous les droits de lecture sont configurés pour tous sur les fichiers sous /etc/solr/conf et /user/share/solr.
Installation du module Apache Solr Search Integration
Si vous êtes rendu ici, vous n’êtes pas très loin de la réussite. Téléchargez le fichier de la version la plus récente pour drupal 6 à l’adresse http://drupal.org/project/apachesolr et extraire le contenu dossier dans le répertoire /sites/all/modules de votre installation drupal. Téléchargez le client php pour apache solr (la révision 22) comme suit :
cd [/chemin/vers/modules]/apachesolr/ svn checkout -r22 http://solr-php-client.googlecode.com/svn/trunk/ SolrPhpClient
Si vous n’avez pas l’application subversion (pour utiliser la commande svn), vous pouvez l’installer avec
apt-get install subversion
ou tout simplement télécharger le client php pour solr à l’adresse suivante http://solr-php-client.googlecode.com/files/SolrPhpClient.r22.2009-11-09.tgz et extraire le dossier sous le répertoire du module apachesolr.
Normalement, vous devriez avoir un dossier SolrPhpClient dans le répertoire du module apachesolr.
note: Si votre projet drupal est dans un système de révision et que vous utilisez la commande svn pour vous appropriez le client php, n’oubliez pas de supprimer les dossiers .svn avant de faire un commit !
Vous pouvez maintenant procéder à l’installation du module via l’interface de drupal (Apache Solr Framework && Apache Solr Search). Rendez vous à la configuration du module (admin/settings/apachesolr/settings) et normalement, vous devriez voir les messages suivant :
Apache Solr: Your site has contacted the Apache Solr server. Apache Solr PHP Client Library: Correct version "Revision: 22".
Si vous avez un message d’erreur disant que le site ne peut contacter le serveur apache solr, assurez-vous que le port est bien le même que celui entré dans la configuration de jetty. Normalement, localhost pour l’hôte et /solr comme chemin devrait être correct.
Il ne reste plus qu’une seule étape pour que le tout fonctionne : copier les fichiers schema.xml et solrconfig.xml, disponibles dans le répertoire du module apachesolr dans le dossier de configuration de jetty :
cd [/chemin/vers/modules]/apachesolr/ mv /etc/solr/conf/schema.xml /etc/solr/conf/schema.xml.bak mv /etc/solr/conf/solrconfig.xml /etc/solr/conf/solrconfig.xml.bak cp schema.xml /etc/solr/conf/schema.xml cp solrconfig.xml /etc/solr/conf/solrconfig.xml
le serveur devra aussi écrire dans le répertoire /usr/share/solr pour créer les index de recherche. Il faut donc changer le propriétaire du répertoire pour jetty :
chown -R jetty:jetty /usr/share/solr
et redémarrer le serveur solr-jetty
/etc/init.d/jetty stop /etc/init.d/jetty start
visitez les pages http://localhost:8983/solr/admin/file/?file=schema.xml et http://localhost:8983/solr/admin/file/?file=solrconfig.xml et assurez-vous que l’attribut name des balise <config> et <schema> contient bien drupal-[version]
Et voilà, vous pouvez maintenant pleinement profiter du pouvoir de la recherche avec apache solr sous drupal 6. J’espère que ce guide a pu vous être utile, n’hésitez pas à y laisser des commentaires !
sudo mv /etc/solr/conf/schema.xml /etc/solr/conf/schema.xml.bak