VT2018 Apache Solr

=Introduction= Technologie : Apache Solr Auteur : Raphael MANGER E-mail : raphael.manger+solr@gmail.fr Presentation : [[Media:VT2018_Apache_Solr.pdf|Transparents]]

=Résumé= Apache Solr est un serveur moteur de recherche développé en Java à partir de 2004 par l'entreprise CNET Networks et désormais maintenu par l'Apache Software Foundation. Il permet de gérer toute la chaine d'acquisition des données et plus particulièrement l'indexation, grâce à la bibliothèqe Lucene, et la recherche de texte. Il s'intègre particulièrement bien dans l'écosystème des logiciels Apache, noteamment Nutch, Tika et Hadoop.

=Abstract= Apache Solr is a search engine server developped in Java since 2004 by CNET Networks a now maintained by the Apache Software Foundation. It allows to manage all the data acquisition process and more specifically indexing, thanks to Lucene library, and full-text search. It fits well with the Apache software environment, like Nutch, Tika and Hadoop.

=Synthèse=

Description
Apache Solr est un serveur/moteur de recherche développé en Java et utilisant les fonctionnalités de la bibliothèque Lucene. Il peut être utilisé en local ou être déployé sur un cloud et peut être administré en ligne de commande ou via une interface HTML dédiée. Ses configurations par défaut lui permettent de superviser toute la chaine d'acquisition de données et notamment les phases suivantes : Il peut indexer des collections de données dans des formats très divers ainsi qu'effectuer des recherches. Hautement configurable, il peut également être amélioré avec de nombreux plugins et est conçu pour opérer avec les différents outils maintenus par l'Apache Software Foundation : Il s'utilise via une API REST-like avec des requêtes HTTP et des réponses en JSON (par défaut).
 * récupération des données (web crawling, requêtes BDD, ...)
 * traitement des données
 * indexation des données (bibliothèque Lucène)
 * Nutch : indexeur automatique
 * Tika : bibliothèque d'extraction de données et métadonnées
 * Hadoop : gestionnaire de fichiers

Prérequis
Utiliser un système Unix.

Installation
Récupérer l'archive des binaires au format .tgz [ici] et la dépaqueter : tar zxvf solr-7.0.0.tgz Puis : cd solr-7.0.0

Voilà !

Présentation du répertoire

 * bin/ : contient les exécutables permettant d'utiliser Apache Solr
 * example/ : contient les configurations et collections pour les exemples
 * server/solr/ : contient les configurations par défaut pour une première utilisation ainsi que les collections créées

Démarrage
./bin/solr start Pour vérifier que tout fonctionne correctement, exécuter : ./bin/solr status Un message devrait indiquer qu'une instance de Solr est accessible par le port 8983. Dans un navidateur Web, rendez vous à l'adresse [http://localhost:8983], vous devriez voir l'interface HTML de l'application :

Si des messages de Warning apparaissent, essayez : export SWT_GTK3=0

Création d'une collection
Pour créer une collection de documents, exécuter : ./bin/solr create -c Pour ajouter des documents à cette collection, deux possibilités : ./bin/post -c ~/ ./bin/post -c http:// Note : Cette dernière utilisation présente cependant un problème, il n'est en effet pas possible d'effectuer des recherches récursives à partir d'une page racine. Il aurait normalement fallu ajouter l'option -recursive X où X aurait été la profondeur de l'indexation.
 * à partir de vos fichiers :
 * à partir d'un site web :

Recherche dans une collection
Pour rechercher un terme dans une collection, utiliser la commande suivante : curl http://localhost:8983/solr/ /select?q=

L'interface HTML permet également d'effectuer des recherches. Pour cela, à partir de la page princiale de l'interface, sélectionner dans le menu déroulant de gauche la collection dans laquelle vous voulez effectuer la recherche. Une liste verticale d'onglets va apparaitre, allez dans l'onglet "Query" :

Une fois la requête effectuée via l'interface, le lien HTTP correspondant sera affiché en haut à droite de la page. Ce lien permet d'effectuer la requête directement depuis le navigateur ou via la ligne de commande comme vu précédemment. Pour plus d'informations sur les requêtes sous Apache Solr, voir [ici].

Arrêt
./bin/solr stop

= Sources =
 * wikipedia.fr
 * http://lucene.apache.org/solr/, site officiel
 * https://www-eu.apache.org/dist/lucene/solr/, site miroir de téléchargement
 * http://lucene.apache.org/solr/guide/7_6/solr-tutorial.html, tutoriel officiel (niveau débutant)
 * https://lucene.apache.org/solr/guide/7_6/the-standard-query-parser.html], plus d'informations sur les requêtes
 * http://solr-vs-elasticsearch.com, site de comparaison entre Apache Solr et ElasticSearch