introduction à lucene et à solr - latece.uqam.ca · moteur d’indexation (librairie open-source...
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