Search, NoSQL et Big Data
avec les moteurs de recherche
@LucianPrecup
2013-11-14
Historique - avant
Browse
Filter
Sort

Get

Appli
<
Répertoire
idx

BD

file

file

www
file

>
<

>
<

>
Historique - après
Search
Filter
Sort
Index
Get

Appli
<
Répertoire
idx

BD

file

file

www
file

>
<

>
<

>
Les moteurs de recherche sont partout

-- LucidWorks (http://www.lucidworks.com/)
Use case métier
• E-commerce

– Beaucoup de critères de pertinence métier à implémenter

• Ressources humaines

– Recherch...
Recherche rapide
Recherche rapide
«« full-text »
full-text »
Auto-complétion
Auto-complétion
(suggestions de résultats)
(s...
Use case : applications de gestion
•

Expérience utilisateur / Ergonomie de
l’application
–
–
–
–
–

•

•

Navigation « à ...
Use case : recherche sémantique

••Identificationde la langue
Identification de la langue
••Segmentation––dans les langues...
Use case : agrégations

– Groupement par un critère (ex. valeur du champ type
de garantie, ou thème, ou catégorie) et calc...
NoSQL ?
• En général
–
–
–
–

BDs non-traditionnelle
N’utilisent pas / ne sont pas construites autour de SQL
Distribués, a...
NoSQL, Moteurs de Recherche et
SGBDs classiques
Synchronisation
Synchronisation
temps réel
temps réel

Fluidité des applic...
••Backend Elasticsearch
Back end Elasticsearch
••Frontend Javascript
Front end Javascript
••Applicationdéveloppée
Applicat...
Big Data?
• Ensemble des données
tellement larges qu’il est
difficile de les exploiter
avec des bases de données
ou des ou...
Big Data?

• Big Data et le marketing :-)
You don’t have a "Big Data"
problem, you have a big
"data problem" -- Twitter

•...
Big Data en France
• « Tous les secteurs économiques, du commerce au
secteur automobile en passant par le secteur
énergéti...
Big Data en France
• « Tous les secteurs économiques, du commerce au
secteur automobile en passant par le secteur
énergéti...
Use case : analyse des données

-- http://www.elasticsearch.org/overview/kibana/
Use case : sémantique et visualisation

-- http://search.carrot2.org/stable/search
Elasticsearch @Github ::
Elasticsearch @Github
••20TB de données
20 TB de données
••1.3milliards de fichiers
1.3 milliards...
Search @Linkedin ::
Search @Linkedin
••238millions d’utilisateurs
238 millions d’utilisateurs
••5,7milliards de recherches...
Big Data @Amazon ::
Big Data @Amazon
••Picsde 200 articles
Pics de 200 articles
vendus par seconde
vendus par seconde
Merci

Q&A
Prochain SlideShare
Chargement dans…5
×

Search, nosql et bigdata avec les moteurs de recherche

2 487 vues

Publié le

Search, nosql et bigdata avec les moteurs de recherche

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
2 487
Sur SlideShare
0
Issues des intégrations
0
Intégrations
1 080
Actions
Partages
0
Téléchargements
0
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive
  • 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
  • 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.
  • Real-time Get + Versioning et Optimistic Locking =&gt; read-update-write functionality that ensures noconflicting changes were made concurrently by other clients
    What is NoSQL?
    - Wikipedia: A NoSQL database provides a mechanism for storage and retrieval of data that use looser consistency models than traditional relational databases in order to achieve horizontal scaling and higher availability. Some authors refer to them as &quot;Not only SQL&quot; to emphasize that some NoSQL systems do allow SQL-like query language to be used.
    - non-traditional datastores
    Doesn’t use / isn’t designed around SQL
    May not give full ACID guarantees (offers other advantages such as greater scalability as a tradeoff)
    Distributed, fault-tolerance architecture
  • Search, nosql et bigdata avec les moteurs de recherche

    1. 1. Search, NoSQL et Big Data avec les moteurs de recherche @LucianPrecup 2013-11-14
    2. 2. Historique - avant Browse Filter Sort Get Appli < Répertoire idx BD file file www file > < > < >
    3. 3. Historique - après Search Filter Sort Index Get Appli < Répertoire idx BD file file www file > < > < >
    4. 4. Les moteurs de recherche sont partout -- LucidWorks (http://www.lucidworks.com/)
    5. 5. 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
    6. 6. Recherche rapide Recherche rapide «« full-text » full-text » Auto-complétion Auto-complétion (suggestions de résultats) (suggestions de résultats) Surbrillance gérée par le Surbrillance gérée par le moteur moteur Accès aux recherches Accès aux recherches multicritères multicritères Recherche approximative et Recherche approximative et suggestions d’orthographe suggestions d’orthographe Nombre total Nombre total des résultats des résultats Résultats affichés Résultats affichés sous la forme de sous la forme de «« mini-fiches » mini-fiches » Navigation par facettes Navigation par facettes - - Calculées avec les résultats Calculées avec les résultats de recherche de recherche - - Filtres de recherche à Filtres de recherche à renseigner apostériori renseigner apostériori Pagination gérée par le moteur Pagination gérée par le moteur Tri sur l’ensemble des Tri sur l’ensemble des résultats (pas résultats (pas seulement page en seulement page en cours) cours)
    7. 7. Use case : applications de gestion • 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
    8. 8. Use case : recherche sémantique ••Identificationde la langue Identification de la langue ••Segmentation––dans les langues sans Segmentation dans les langues sans espaces (chinois, japonais, coréen) espaces (chinois, japonais, coréen) ••Décomposerles mots ––dans les langues qui Décomposer les mots dans les langues qui composent naturellement les mots (allemand, composent naturellement les mots (allemand, néerlandais, coréen néerlandais, coréen ••Extractiond’entités : :noms, endroits, Extraction d’entités noms, endroits, entreprises, ... (ex. j’ai acheté du pain ààla entreprises, ... (ex. j’ai acheté du pain la boulangerie du Monsieur Du Pain) boulangerie du Monsieur Du Pain) -- Basis Technology (http://www.basistech.com/text-analytics/rosette/)
    9. 9. Use case : agrégations – Groupement par un critère (ex. valeur du champ type de garantie, ou thème, ou catégorie) et calcul des statistiques sur un autre champ (ex. total du CA) 9
    10. 10. NoSQL ? • En général – – – – BDs non-traditionnelle N’utilisent pas / ne sont pas construites autour de SQL Distribués, architecture résistante aux pannes Modèle allégé pour permettre la scalabilité horizontale • Pour un moteur de recherche : – – – – – – Indexation et recherche distribuées Real-time Get, Versioning et Optimistic Locking Durable updates (transaction log) HA sans SPOF Near Real-time Search Options “schema-less”
    11. 11. NoSQL, Moteurs de Recherche et SGBDs classiques Synchronisation Synchronisation temps réel temps réel Fluidité des applications Fluidité des applications grâce ààla meilleure grâce la meilleure performance performance Accès quasi-direct ààla Accès quasi-direct la donnée recherchée donnée recherchée Facettes simples Facettes simples ou complexes ou complexes Alternative aux outils Alternative aux outils BI traditionnels BI traditionnels Suggestions temps Suggestions temps réel des termes àà réel des termes chercher chercher
    12. 12. ••Backend Elasticsearch Back end Elasticsearch ••Frontend Javascript Front end Javascript ••Applicationdéveloppée Application développée en 8h en 8h ••#nosql #nosql -- http://javaetmoi.com/2013/11/musicbrainz-elasticsearch-angularjs-openshift/
    13. 13. Big Data? • Ensemble des données tellement larges qu’il est difficile de les exploiter avec des bases de données ou des outils traditionnels • Les problématiques incluent : l’acquisition, le nettoyage, le stockage, la recherche, le partage, le transfert, l’analyse et la visualisation
    14. 14. Big Data? • Big Data et le marketing :-) You don’t have a "Big Data" problem, you have a big "data problem" -- Twitter • Ensemble des données tellement larges qu’il est difficile de les exploiter avec des bases de données ou des outils traditionnels • Les problématiques incluent : l’acquisition, le nettoyage, le stockage, la recherche, le partage, le transfert, l’analyse et la visualisation
    15. 15. Big Data en France • « Tous les secteurs économiques, du commerce au secteur automobile en passant par le secteur énergétique, tous les domaines de la vie quotidienne (santé, éducation...) sont concernés.» • « Les enjeux sont considérables, d’abord sur un plan économique : on évalue à 8% du PIB européen la création de valeur liée aux Big Data à l’horizon 2020.» • « L’objectif du plan "Big Data" est de faire de la France la référence mondiale dans ce domaine. » -- http://www.redressement-productif.gouv.fr/files/la-nouvelle-france-industrielle.pdf
    16. 16. Big Data en France • « Tous les secteurs économiques, du commerce au secteur automobile en passant par le secteur énergétique, tous les domaines de la vie quotidienne (santé, éducation...) sont concernés.» • « Les enjeux sont considérables, d’abord sur un plan économique : on évalue à 8% du PIB européen la création de valeur liée aux Big Data à l’horizon 2020.» • « L’objectif du plan "Big Data" est de faire de la France la référence mondiale dans ce domaine. » -- http://www.redressement-productif.gouv.fr/files/la-nouvelle-france-industrielle.pdf
    17. 17. Use case : analyse des données -- http://www.elasticsearch.org/overview/kibana/
    18. 18. Use case : sémantique et visualisation -- http://search.carrot2.org/stable/search
    19. 19. Elasticsearch @Github :: Elasticsearch @Github ••20TB de données 20 TB de données ••1.3milliards de fichiers 1.3 milliards de fichiers ••130milliards de lignes 130 milliards de lignes de code de code
    20. 20. Search @Linkedin :: Search @Linkedin ••238millions d’utilisateurs 238 millions d’utilisateurs ••5,7milliards de recherches de 5,7 milliards de recherches de professionnels en 2012 professionnels en 2012
    21. 21. Big Data @Amazon :: Big Data @Amazon ••Picsde 200 articles Pics de 200 articles vendus par seconde vendus par seconde
    22. 22. Merci Q&A

    ×