• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Moteurs de recherche et Lucene at LorraineJUG
 

Moteurs de recherche et Lucene at LorraineJUG

on

  • 2,040 views

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

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

Statistics

Views

Total Views
2,040
Views on SlideShare
2,004
Embed Views
36

Actions

Likes
0
Downloads
2
Comments
0

3 Embeds 36

http://www.linkedin.com 30
https://www.linkedin.com 4
http://www.slashdocs.com 2

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment
  • Comment sont apparus les moteurs de recherche Fonctions: indexation, recherche, analyse du texte!!! Avant : Information structurées par domaine applicatif ; base de données (table, colonne), FS (fichier, contenu), Site Web (Plan de site et pages) process d’accès a l’information : naviguer / parcourir puis filtrer/trier navigation dans tout l’espace recherché Apres : Information non structurée et héterogènes : Process : Search puis filtrer / trier : navigation dans le résultat
  • Comment sont apparus les moteurs de recherche Fonctions: indexation, recherche, analyse du texte!!! Avant : Information structurées par domaine applicatif ; base de données (table, colonne), FS (fichier, contenu), Site Web (Plan de site et pages) process d’accès a l’information : naviguer / parcourir puis filtrer/trier navigation dans tout l’espace recherché Apres : Information non structurée et héterogènes : Process : Search puis filtrer / trier : navigation dans le résultat
  • Que peut faire un moteur de recherche? BD – en complément ou en remplacement BI + navigation sur les sites web
  • Recherche rapide « full text » Input: une zone de texte « à la Google » (un texte représentant un nom, un prénom, un identifiant quelconque, un numéro de téléphone, une adresse e-mail, etc.) Output: Résultats, surbrillance et facettes. La liste de résultats n’est pas forcement homogène, chaque résultat pouvant être affiché sous forme de « mini-fiche » L’utilisation des facettes lors de l’affichage du résultat rendra la recherche multicritères optionnelle. Recherche multicritères (recherche avancée) Input: termes de recherche par champ (nom, prénom, id, ville, code postal) Output: liste (homogène) avec résultats de la recherche Auto-complétion (suggestion des résultats) Input: toute ou partie d’un terme recherché localisé à un champ de texte à remplir Output: liste déroulante avec suggestions du terme recherché et surbrillance Facettes Groupement des résultats par catégorie en fonction de la valeur d’un champs (ex. Type Client, Profil client, Sexe) Calculées et remontées en même temps que le résultat de recherche Recherche approximative Sources des erreurs de saisie: fautes de frappe, éléments mal compris par téléphone (phonétique), noms saisis partiellement, noms composés, caractères accentués Suggestions « voulez-vous dire … » Termes se rapprochant des termes initialement cherchés et pouvant remonter potentiellement plus de résultats. Pagination Le moteur gère la pagination Chaque requête précise, en plus des critères de recherche, un indice de départ et une taille de la page La première page est, en général, remontée le plus rapidement La réponse contient le nombre total de résultats, permettant à l’IHM de proposer les liens vers toutes les pages suivantes Tri Le tri par défaut est le tri par pertinence moteur D’autres tris peuvent être demandés (alphabétique par nom, par date de naissance, etc.). Dans ce cas, le tri se fait sur l’ensemble de résultats et pas seulement sur la page en cours.
  • Autres possibilités : - Envoi des documents en HTTP (XML, JSON) - Importer une BD - Charger un fichier CSV - Indexer des fichiers binaires (Word, Excel, PDF) - Envoi des documents en Java (SolrJ) - Crawling des sites web
  • + highlighting ! Ne pas utiliser prefix query

Moteurs de recherche et Lucene at LorraineJUG Moteurs de recherche et Lucene at LorraineJUG Presentation Transcript

  • 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’indexation • ElasticSearch – Accent sur la recherche • Démonstrations
  • 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’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
  • 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
  • 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
  • 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
  • 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 (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
  • 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
  • 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)
  • 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
  • Démo Solr – auto-complétion
  • 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
  • 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
  • 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 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
  • Merci Q & A