[Solr 4.7] : Installation, Configuration , Manipulation

Définition :

Solr est une plateforme logicielle de recherche s'appuyant sur le moteur de recherche Lucene, créé par la Fondation Apache et distribuée et conçue sous licence libre.

Solr utilise le langage Java et est exécuté par un conteneur de servlets, comme par exemple Tomcat. Il communique avec le client à l'aide d'une interface de programmation en XML et JSON, généralement via le protocole HTTP. [http://lucene.apache.org/solr/]


Téléchargement :

Télécharger l'archive de la dernière version de solr en suivant ce lien :

solr-VERSION.zip ou .tgz (avec VERSION est le numéro de la version, e.g. 4.7.1) fichier qui contient Apache Solr, documentation html et tutorial. Le solr-VERSION-src.zip ou .tgz contient tou le code source pour cette version.

Décompresser l'archive, on obtient un dossier contenant :
- exemple/ contient des exemples, des documents à indexer, Jetty le conteneur de servlet …
- docs/ contient la documentation de Solr en HTML.
- dist/solr-XX.war : l'application Apache Solr, qui peut être déployer dans n'importe conteneur de servlet.
- dist/solr-<component>-XX.jar contient les librairies nécessaires.

Ceci est mentionné dans le fichier README.txt

L'archive de Solr vient avec des simples exemples, il reste à les déployer pour tester le bon fonctionnement.
Pour cela il faut disposer d'un serveur conteneur de servlet (Solr basé sur Java), on va tester avec Apache Tomcat (voir en bas l'installation), ou avec Jetty, livré dans le même archive.

Solr/exemple/ contient une instance de Jetty faite pour lancer Solr en utilisant un exemple de configuration.

Pour lancer Solr, vous devez vous disposer de Java.
Sinon installer Java:
sudo apt-get install openjdk-7-jre-headless

lancer la commande :
cd exemple/
java -jar start.jar

Si tout va bien, vérifier l'URL http://localhost:8983/solr/





On va indexer des documents pour qu'on puisse faire les différentes requêtes de recherche  :
cd exempledocs/
java -jar post.jar *.xml

voilà, on a pu indexer les documents, on peut passer directement à faire des requêtes.

Quering & Faceting :


          Le Facetage est l'agencement des résultats de recherche dans des catégories (qui sont basés sur les termes indexés). Dans chaque catégorie, Solr rapporte sur le nombre de visites pour un mandat pertinent, qui est appelé une contrainte de facette. Le facettage facilite aux utilisateurs l'exploration des résultats de recherche sur des sites tels que les sites de films et de sites de vente des produits, où il y a beaucoup de catégories et de nombreux éléments dans une catégorie. [http://docs.lucidworks.com]
 

* Recherche sur electronics → http://localhost:8983/solr/select?q=electronics

* avec tri sur le prix descendant → /solr/select?q=electronics&sort=price+desc

* en affichant 5 documents (row), à partir de la position 5 (start) → solr/select?q=electronics&rows=5&start=5

* avec field listing (fl), afficher que les champs mentionnés dans les doc du résultat→ http://localhost:8983/solr/select?q=electronics&fl=name+price


* recherche dans tout les documents avec affichage des facets du champs cat et du champs inStock→ http://localhost:8983/solr/select?q=*:*&facet=true&facet.field=cat&facet.field=inStock
*en affichant le nombre des prix allant de 0 → 10, et de plus que 10→ http://localhost:8983/solr/select?q=*:*&facet=on&facet.query=price:[0 TO 10]&facet.query=price:[10 TO *]


Installation Tomcat 7 avec Solr 4.7

installer Java
# apt-get install openjdk-7-jre-headless

installer tomcat7 et tomcat7-admin pour accéder à l'interface d'administration web
# apt-get install tomcat7 tomcat7-admin

Maintenant que tomcat est installé, on peut vérifier 
http://localhost:8080/
Si la page ne s'affiche pas, assurer que tomcat est bien lancé :
# service tomcat7 start

Configurer l'authentification de Tomcat Webapps :

par défaut, le package tomcat7-admin est sécurisé, donc il faut activer l'authentification :
# nano /etc/tomcat7/tomcat-users.xml

modifier le contenu du fichier pour qu'il soit ainsi :
<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="your_username" password="your_password" roles="manager-gui,admin-gui"/>
enregistrer, redémarrer tomcat, vous pouvez accéder maintenant au Tomcat Web Application Manager 



Installation Solr
télécharger et décompresser l'archive
# curl http://archive.apache.org/dist/lucene/solr/4.7.2/solr-4.7.2.tgz | tar xz

Pour autre version, vous pouvez accéder à http://archive.apache.org/dist/lucene/solr
Pour autre site miroir, vous pouvez accéder à http://www.apache.org/dyn/closer.cgi/lucene/solr

On ajoute maintenant les librairies nécessaires pour le fonctionnement de Solr au librairies de Tomcat :
# cp ~/solr-4.7.2/example/lib/ext/* /usr/share/tomcat7/lib/

On déploie l'application Solr.war
# cp ~/solr-4.7.2/dist/solr-4.7.2.war /var/lib/tomcat7/webapps/solr.war
ou par l’intermédiaire de l'interface web d'administration de tomcat.

Finalement, on copie l'exemple de solr dans base Catalina de Tomcat
et on y donne la permission au serveur tomcat7
# cp -R ~/solr-4.7.2/example/solr /var/lib/tomcat7
# chown -R tomcat7:tomcat7 /var/lib/tomcat7/solr
Catalina est le conteneur servlet de Tomcat ou, simplement dit, le composant du serveur tomcat qui interagie avec les servlets Java.
On redémarre enfin Tomcat7
# service tomcat7 restart
pour consulter les erreurs, vous pouvez afficher le fichier log de tomcat :
# tail -f/var/log/tomcat7/catalina.out

Securiser Solr Admin Web Page :
Maintenant que Solr fonctionne bien localement sur le port 8080, il est bien accessible par internet, sans restriction ; même si le port 8080 n'est pas accessible publiquement, il est bien de restreindre l'accès des utilisateurs du même réseau.
Pour restreindre l’accès et ainsi sécuriser mes applications Solr, il faut passer par authentification dans la page web admin de Solr.
Tout d'abord, on arrête le serveur Tomcat :
# service tomcat7 stop

modifier le fichier de configuration pour l'application déployée :
# nano /var/lib/tomcat7/webapps/solr/WEB-INF/web.xml

Insérer le bloc suivant, juste avan la fermeture de la balise web-app :

<security-constraint>
  <web-resource-collection>
    <web-resource-name>Solr GUI Authentication</web-resource-name>
    <url-pattern>/*</url-pattern>
    <http-method>GET</http-method>
    <http-method>POST</http-method>
  </web-resource-collection>
  <auth-constraint>
    <role-name>solr-gui</role-name>
  </auth-constraint>

  <user-data-constraint>
    <transport-guarantee>NONE</transport-guarantee>
  </user-data-constraint>
</security-constraint>

<login-config>
  <auth-method>BASIC</auth-method>
</login-config>

Editer de nouveau le fichier /etc/tomcat7/tomcat-users.xml et ajouter le role à l'utilisateur crée précédemment :

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="your_username" password="your_password" roles="manager-gui,admin-gui,solr-gui"/>


Redémarrer Tomcat.


Commentaires

  1. Bonjour,
    est ce que tu peux spécifier l’emplacement de ce dossier "exempledocs" ?

    RépondreSupprimer
    Réponses
    1. "exempledocs" ou "exemple" contient des exemples, des documents à indexer, Jetty le conteneur de servlet …

      Supprimer

Enregistrer un commentaire

Posts les plus consultés de ce blog

Connecting to MS Exchange Server with Thunderbird

SVN and GIT Tag with Jenkins Job