introduction à lucene et à solr - latece.uqam.ca · moteur d’indexation (librairie open-source...

21
Objectifs du s´ eminaire Introduction ` a Lucene Introduction ` a Solr Remarques g´ en´ erales emonstration Introduction ` a Lucene et ` a Solr Ludovic Jean-Louis Netmail Mercredi 21 Octobre 2015 1/22

Upload: buikien

Post on 18-Oct-2018

222 views

Category:

Documents


0 download

TRANSCRIPT

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Introduction a Lucene et a Solr

Ludovic Jean-Louis

Netmail

Mercredi 21 Octobre 2015

1/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Motivations

Comprendre les differences entre Lucene et Solr

Comprendre le processus d’indexation des donnees

Eclairer le choix entre Lucene et Solr

Conseils pratiques pour indexer des donnees

2/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Motivations

Pourquoi indexer ?

les documents sont repartis dans plusieurs repertoires

trop penible de faire des ‘grep‘

les expressions regulieres ne suffisent plus ex. : recherche apartir d’une racine ou d’un lemme

grand nombre de documents, probleme de performance de’grep’ sur des millions de documents

3/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Lucene

Qu’est ce que Lucene ?

Moteur d’indexation (librairie open-source Java)

Fonctions principales

Indexation de documentsRecherche de documents

Differences avec les bases de donnees

Pas de repartitions des donnees dans plusieurs tablesLe modele de donnees influence les requetes

4/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Lucene

Comment fonctionne Lucene ?

Un document est un ensemble de paires {champs :valeur}Pas de limite sur le nombre de champs d’un document

Pas d’obligation de peupler tous les champs d’un document

Title: Lucene/Solr – Crash-course

Content: Lucene is a cool library

Document

Champs

5/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Lucene

Comment fonctionne Lucene ?

Analyse du contenu des champs

Lucene construit et maintient un index inverse

Index inverse => correspondance entre les termes et lesdocuments

Index inverse stocke dans une structure de fichier specifique

En pratique l’index inverse est beaucoup plus elabore

W1

W2

W3

W4

W2

W1

W1

W4

D1 D2 D3W1 D1,D2,D3

W2 D1,D2

W3 D1

W4 D2

Index inversé

6/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Lucene

Comment fonctionne Lucene ?La phase d’analyse est tres importante

Determine comment seront indexees les donneesChoix du tokenizerDetermine si le champs est analyse ou nonChoix de la liste des mots-vides

Determine quels champs seront indexesStockage du contenu seulement (ex. : id)Indexation des valeurs mais pas de stockageIndexation et stockage des valeurs

Obama stays at the White-House

AnalyseObamastayWhite-House

7/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Lucene

L’analyse des champs dans Lucene

Environ 60 analyseurs disponibles

Possible de construire son propre analyseur

http://www.hascode.com/2014/07/

lucene-by-example-specifying-analyzers-on-a-per-field-basis-and-writing-a-custom-analyzertokenizer/

Analyseurs pour 30 langues

8/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Lucene

Comment fonctionne Lucene ? (recherche de documents)

Reponse intuive

Requete q, index inverse IndexRetourne D = {d1, .., dk} tel que di contient q

Limites

Les documents ne sont pas ordonnesPas d’analyse de la requete, possiblement pas de resultatsex. : recherche sur un mot vide qui est ecarte lors de l’analyse

9/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Lucene

Comment fonctionne Lucene ? (recherche de documents)

Elements de reponse

Analyse de la requete (identique a la phase d’indexation)Recherche des documents a partir de l’index inverseCalcul de score de pertinence pour chaque documentListe ordonnee de resultats

Approche differente pour l’identification de passagespertinents (snippets)

Calcul de la pertinence de chaque passage a l’interieur d’undocument

10/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Lucene

Comment commencer ?

Etape 1

Construire le modele de donneesDe quels champs ai-je besoin ?Quels sont les types de champs (text, string, dates, etc.) ?Types de champs possibleQuelle analyse doit etre faite ? Sur quels champs ?Ai-je besoin de stocker les valeurs des champs ?

11/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Lucene

Fig.: https://wiki.apache.org/solr/FieldOptionsByUseCase12/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Lucene

Comment commencer ?

Etape 2

Ecrire le code pour peupler les champs a partir des donnees

Etape 3 (facultative)

Indexer un sous ensemble des documentsValider qu’il ne manque aucun champsTester des requetes simples pour valider le modele de donneesValider que le modele permet de supporter tous les types derequetes necessaires

Indexer tout le corpus

13/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Solr

Qu’est-ce que Solr ?

Moteur de recherche d’entreprise

Serveur d’indexation et de recherche en texte integral

Couche Http/serveur au dessus de la librairie Lucene

Analogie avec l’automobile :

Moteur => LuceneVoiture => Solr

14/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Solr

Pourquoi utiliser Solr ?

Lucene permet de controler un index physique a la fois

Solr permet d’augmenter le passage a l’echelle

Interaction avec une collection d’indexPermet une indexation distribueePermet une recherche distribuee

Couche serveur : Http REST

Configuration dynamique de la structure de l’index

D’autres proprietes : tolerence aux pannes, sauvegarde, etc.

15/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Solr

Comment fonctionne Solr ?

Solr s’appuie sur Lucene

Tous les concepts Lucene s’appliquent a SolrLes versions Solr et Lucene sont synchroniseesQuelques fonctionnalites Lucene ne sont pas integreesEx. : construction d’un index uni-document en memoireQuelques apports de Solr (analyseur de requete, etc.)

Pas de communication directe entre les index Lucene

Gestion de la configuration et synchronisation via Zookeeper

16/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Solr

Terminologie

Solr-Cloud : ensemble des noeuds ayant une instance de Solren activite

Core ou shard : equivalent d’un index “physique” Lucene

Collection : ensemble logique compose d’un ou plusieurs shard

Les fichiers importants :

solr.xml : proprietes relatives a l’administration du serveursolrconfig.xml : configuration des shardsschema.xml : configuration du schema de l’index (champs,etc.)

17/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Solr

Comment commencer ?

Etape 1 : Similaire a Lucene, (modele de donnees, etc.)

Etape 2 : Installer/configurer le serveur Solr

Combien de noeuds ?Combien de collections ?

Etape 3 : Ecrire le code pour peupler l’index

Etape 4 : Indexer le corpus

18/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Remarques

D’autres moteur de recherche s’appuient sur Lucene

Elastic (anciennement Elasticsearch), Nutch, HelioSearch,swiftype

Lucene ou Solr sont utilises par des millions de personnes

Twitter, Ebay, etc.

19/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Liens utiles

Lucene

http://wiki.apache.org/lucene-java/FrontPage

Solr

http://yonik.com/solr-tutorial/

http://lucene.apache.org/solr/

https://cwiki.apache.org/confluence/display/solr/Apache+Solr+Reference+Guide

20/22

Objectifs du seminaireIntroduction a Lucene

Introduction a SolrRemarques generales

Demonstration

Demonstration

Installation d’un serveur Solr

Presentation de l’interface d’administration de Solr

Interface utilisateur pour la recheche de documents (corpusWikipedia)

21/22