[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
*
avec filter query (fq) →
http://localhost:8983/solr/select?q=electronics&fq=inStock:true
*
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
# 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.
Bonjour,
RépondreSupprimerest ce que tu peux spécifier l’emplacement de ce dossier "exempledocs" ?
"exempledocs" ou "exemple" contient des exemples, des documents à indexer, Jetty le conteneur de servlet …
Supprimer