Moteurs de Recherche
Lucene, Solr et Elasticsearch en
Action
@LucianPrecup
@LorraineJUG
2012-11-29
Objectif
• Patterns d’architecture
• Outils pour démarrer et exploiter au mieux les
technologies
• Solr
– Accent sur l’ind...
Historique - avant
BDidx
Appli
Répertoire
file file file
< >
< >
< >
www
Browse
Filter
Sort
Get
Historique - après
BDidx
Appli
Répertoire
file file file
< >
< >
< >
www
Index
Search
Filter
Sort
Get
Moteurs de recherche – valeur ajoutée
pour les applications d’entreprise
• Expérience utilisateur / Ergonomie de
l’applica...
Fonctionnalités
• Indexation
– Données non-structurées (fichiers)
– Données semi-structurées (email)
– Analyse du texte
• ...
Pagination gérée par le moteurPagination gérée par le moteur
Navigation par facettes
- Calculées avec les
résultats de rec...
NoSQL et Moteurs de Recherche –
alternative aux SGBDs classiques
Synchronisatio
n temps réel
Synchronisatio
n temps réel
A...
Technologies
• Google Search Appliance
• MS FAST Search
• ...
• Open Search Server
• Apache Solr
• Elasticsearch
Open Search Server
• Startup française, produit conçu et développé en France
• Solution complète intégrant
– crawlers (JDB...
Intégration Solr (v3)
• Clustering : répartiteur de charge et redondance des SA
• Indexation en masse : dizaine de million...
Démo Solr – alimenter l’index
• Importer une BD
• Join
• Entités et référencement avec ${parent.ID}
• GROUP_CONCAT
• Index...
Types de champs dans l’index
• stored / not_stored
• analyzed / not_analyzed
• Champs de recherche
• Champs de tri
• Champ...
Démo Solr – auto-complétion
Analyzers / Tokenizers / Token filters
Document entrée 
Indexation Recherche
Id Nom
1 Céline
Ascii folding  Celine
Lower...
Analyzers / Tokenizers / Token filters
Documents entrée 
Indexation Recherche
Id Nom
1 Céline
2 Celia
Ascii folding  Cel...
Solr – zoom sur les outils
• Luke
• Explain
• Solr Admin (stats, query form, analysis)
• Solr browse search UI
Elasticsearch - spécificités
• Clustering
• Schéma auto
• Rivers et indexation en temps réel
• Percolation
Intégration – Elasticsearch
Elasticsearch - clustering
Elasticsearch – zoom sur les outils
• curl
• ESHead
• "explain" : 1
Démo – Pertinence
• Comment est calculé le score
• Comment influencer le score
Démo - recherche
• Analyse à la recherche, requêtes composés
• Highlighting
• Fuzzy
• Facettes
• Filtres
Use case métier
• E-commerce
– Beaucoup de critères de pertinence métier à implémenter
• Ressources humaines
– Recherche d...
Merci
Q & A
Prochain SlideShare
Chargement dans…5
×

Moteurs de recherche et Lucene at LorraineJUG

3 066 vues

Publié le

Présentation tenue à Lorraine JUG (http://lorrainejug.blogspot.fr/2012/11/moteurs-de-recherche-lucene-en-action.html):

<< Apache Lucene, la fameuse technologie pour l’indexation, la recherche et l’analyse du texte est la base de plusieurs serveurs Open Source. La présentation détaillera Solr et ElasticSearch sous la forme "Tools in Action" - démonstrations en direct des différents outils.

Allant au-delà du tutorial, cette session vous permettra de découvrir comment mettre en place des serveurs de recherche pertinents, robustes, performants et évolutifs en utilisant des approches NoSQL, Apache Lucene et bibliothèques Java Open Source. Des subtilités sur l’analyse du texte, la recherche approximative, l’auto-complétion seront abordées afin de montrer les forces mais aussi les limites de la magie Lucene.

Lucian est développeur, architecte et responsable des développements ayant évolué, depuis douze ans, du projet de recherche au grand éditeur de logiciels en passant par la start-up.

Depuis 2010 Lucian a acquis, à travers ses missions, une expertise sur les architectures NoSQL et les moteurs de recherche pour l’entreprise (Enterprise Search), expertise qu’il partage dans différents barcamps et conférences. >>

Publié dans : Technologie
  • Soyez le premier à commenter

Moteurs de recherche et Lucene at LorraineJUG

  1. 1. Moteurs de Recherche Lucene, Solr et Elasticsearch en Action @LucianPrecup @LorraineJUG 2012-11-29
  2. 2. Objectif • Patterns d’architecture • Outils pour démarrer et exploiter au mieux les technologies • Solr – Accent sur l’indexation • ElasticSearch – Accent sur la recherche • Démonstrations
  3. 3. Historique - avant BDidx Appli Répertoire file file file < > < > < > www Browse Filter Sort Get
  4. 4. Historique - après BDidx Appli Répertoire file file file < > < > < > www Index Search Filter Sort Get
  5. 5. Moteurs de recherche – valeur ajoutée pour les applications d’entreprise • Expérience utilisateur / Ergonomie de l’application – Navigation « à la Google » – Accès quasi-direct à la donnée recherchée – Navigation par facettes – Pagination disponible « out of the box » – Performances maximisées impliquant une fluidité accrue des applications – Suggestions (auto-complétion) des termes à rechercher • Fonctionnalités de recherche sémantique très puissantes – Recherche approximative, recherche phonétique, correction grammaticale et d’orthographe, gestion des mots techniques, des synonymes et des mots composés • Plus rapide que les approches SQL traditionnels
  6. 6. Fonctionnalités • Indexation – Données non-structurées (fichiers) – Données semi-structurées (email) – Analyse du texte • Recherche – Fulltext, multicritère, suggestion – Facettes, filtres, tris – Sémantique
  7. 7. Pagination gérée par le moteurPagination gérée par le moteur Navigation par facettes - Calculées avec les résultats de recherche - Filtres de recherche à renseigner apostériori Navigation par facettes - Calculées avec les résultats de recherche - Filtres de recherche à renseigner apostériori Auto-complétion (suggestions de résultats) Surbrillance gérée par le moteur Auto-complétion (suggestions de résultats) Surbrillance gérée par le moteur Recherche rapide « full-text » Recherche rapide « full-text » Nombre total des résultats Nombre total des résultats Tri sur l’ensemble des résultats (pas seulement page en cours) Tri sur l’ensemble des résultats (pas seulement page en cours) Résultats affichés sous la forme de « mini-fiches » Résultats affichés sous la forme de « mini-fiches » Recherche approximative et suggestions d’orthographe Recherche approximative et suggestions d’orthographe Accès aux recherches multicritères Accès aux recherches multicritères
  8. 8. NoSQL et Moteurs de Recherche – alternative aux SGBDs classiques Synchronisatio n temps réel Synchronisatio n temps réel Alternative aux outils BI traditionnels -La navigation par facettes -Les statistiques sur les champs -Le regroupement automatique des résultats de recherche Alternative aux outils BI traditionnels -La navigation par facettes -Les statistiques sur les champs -Le regroupement automatique des résultats de recherche Facettes simples ou complexes calculées en même temps que les résultats de recherche Facettes simples ou complexes calculées en même temps que les résultats de recherche Certaines requêtes (ex. ORDER BY, GROUP BY ou LIKE) iront plus vite Certaines requêtes (ex. ORDER BY, GROUP BY ou LIKE) iront plus vite Utilisation du moteur à la place ou en complément de la base de données Utilisation du moteur à la place ou en complément de la base de données
  9. 9. Technologies • Google Search Appliance • MS FAST Search • ... • Open Search Server • Apache Solr • Elasticsearch
  10. 10. Open Search Server • Startup française, produit conçu et développé en France • Solution complète intégrant – crawlers (JDBC, CIFS/SAMBA, FTP, FTPS, Dropbox, web) – parseurs (documents riches, images, video, sons, OCR) – indexation (analyseurs, lemmatisation, thesaurus, identification d'entité nommée, classification automatique) – requêtes (recherche full text, filtrage et facette, jointures, cluster, correction orthographique) – scheduler – API (Rest/XML, Rest/Json, SOAP) – interface utilisateur RIA • Noyau – Lucene pour la version 1.3 – C (via JNA) pour la prochaine version 2.0
  11. 11. Intégration Solr (v3) • Clustering : répartiteur de charge et redondance des SA • Indexation en masse : dizaine de millions de documents • Fonctions avancées d’analyse du texte
  12. 12. Démo Solr – alimenter l’index • Importer une BD • Join • Entités et référencement avec ${parent.ID} • GROUP_CONCAT • Indexer des fichiers binaires (Word, Excel, PDF)
  13. 13. Types de champs dans l’index • stored / not_stored • analyzed / not_analyzed • Champs de recherche • Champs de tri • Champs pour l’affichage • Champs pour les facettes • Champs mixtes
  14. 14. Démo Solr – auto-complétion
  15. 15. Analyzers / Tokenizers / Token filters Document entrée  Indexation Recherche Id Nom 1 Céline Ascii folding  Celine Lowercase  celine EdgeNGram  ce cel celi celin celine Clé Id document ce 1 cel 1 celi 1 celin 1 celine 1 Index  Terme recherché Nom Celin Celin  Ascii folding celin  Lowercase
  16. 16. Analyzers / Tokenizers / Token filters Documents entrée  Indexation Recherche Id Nom 1 Céline 2 Celia Ascii folding  Celine, Celia Lowercase  celine, celia EdgeNGram  ce cel celi celin celine ce cel celi celia Clé Id document ce 1, 2 cel 1, 2 celi 1, 2 celin 1 celine 1 celia 2 Index  Terme recherché Nom Célin Celin  Ascii folding celin  Lowercase ce cel celi celin  EdgeNGram
  17. 17. Solr – zoom sur les outils • Luke • Explain • Solr Admin (stats, query form, analysis) • Solr browse search UI
  18. 18. Elasticsearch - spécificités • Clustering • Schéma auto • Rivers et indexation en temps réel • Percolation
  19. 19. Intégration – Elasticsearch
  20. 20. Elasticsearch - clustering
  21. 21. Elasticsearch – zoom sur les outils • curl • ESHead • "explain" : 1
  22. 22. Démo – Pertinence • Comment est calculé le score • Comment influencer le score
  23. 23. Démo - recherche • Analyse à la recherche, requêtes composés • Highlighting • Fuzzy • Facettes • Filtres
  24. 24. Use case métier • E-commerce – Beaucoup de critères de pertinence métier à implémenter • Ressources humaines – Recherche de personnes – Recherche full-texte (catalogues formation, CVs, compétences) • Poste de travail – Modèle métier complexe – Indexation temps réel • Portail intranet – Hétérogénéité des sources données: annuaires, wikis, fichiers, applications • Internet – Pertinence du premier résultat. Ex. : « I’m feeling lucky » de Google, Siri, LeMoteur.fr
  25. 25. Merci Q & A

×