VT2018 Apache Solr

From air
Jump to navigation Jump to search

Introduction

Technologie : Apache Solr
Auteur : Raphael MANGER
E-mail : raphael.manger+solr@gmail.fr
Presentation : 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 :

  • récupération des données (web crawling, requêtes BDD, ...)
  • traitement des données
  • indexation des données (bibliothèque Lucène)

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 :

  • Nutch : indexeur automatique
  • Tika : bibliothèque d'extraction de données et métadonnées
  • Hadoop : gestionnaire de fichiers

Il s'utilise via une API REST-like avec des requêtes HTTP et des réponses en JSON (par défaut).

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

Utilisation

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 :

Solr Interface.png

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 <nom>

Pour ajouter des documents à cette collection, deux possibilités :

  • à partir de vos fichiers :
./bin/post -c <nom> ~/<chemin>
  • à partir d'un site web :
./bin/post -c <nom> http://<adresse>

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.

Recherche dans une collection

Pour rechercher un terme dans une collection, utiliser la commande suivante :

curl http://localhost:8983/solr/<nom>/select?q=<termeAChercher>

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" :

Solr Query.png

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