Tirer le meilleur de ses données avec ElasticSearch

6,687 views

Published on

Qu'est-ce qu'un moteur de recherche ? Qu'est-ce qu'ElasticSearch ? Comment l'utiliser dans le monde réel et peut-on aller plus loin que la recherche full texte ?

Published in: Technology

Tirer le meilleur de ses données avec ElasticSearch

  1. 1. Tirer le meilleur de ses données avec ElasticSearch
  2. 2. A propos de moi Séven Le Mesle - Consultant Xebia - 10 ans d’expérience En ce moment: évangeliste DevOps, aventurier BigData, pratiquant NoSQL, et ... @slemesle
  3. 3. Agenda ‣ ElasticSearch ? Oui, mais c’est quoi ? ‣ Use Case - Migration d’une base de commande ‣ Facette / B.I. vers de nouveaux usages ‣ Centralisation et analyse de logs ‣ Et encore plus 3
  4. 4. ElasticSearch Oui ! mais c’est quoi ? 1
  5. 5. ElasticSearch Qu’est-ce qu’un moteur de recherche ? 5
  6. 6. ElasticSearch Un moteur d’indexation Document 6
  7. 7. ElasticSearch Comment indexer ? 7
  8. 8. ElasticSearch Un moteur de recherche dans l’index 8
  9. 9. Construire l’index cleanup tokenize transform stop words Document 9
  10. 10. ElasticSearch Alors pourquoi utiliser un moteur de recherche ? 10
  11. 11. ElasticSearch Une base de données SQL n’est pas faite pour la recherche Prenons un modèle simple 11
  12. 12. ElasticSearch Pourquoi un moteur de recherche ? ‣ Match par champs ‣ Utiliser des jointures ‣ Construire une clause WHERE ‣ Et, ajouter les index en bases 12
  13. 13. ElasticSearch 13
  14. 14. ElasticSearch 14
  15. 15. ElasticSearch La promesse est de simplifier la recherche au maximum via un seul champ. 15
  16. 16. ElasticSearch Un middleware de données ‣ NoSQL orienté document ‣ Apache Lucene ‣ API simple HTTP / REST + JSON ‣ Hautement disponible ‣ Cloud ready 16
  17. 17. ElasticSearch Points forts Démarrage rapide : 5 minutes suffisent pour se lancer Schemaless convention over configuration Scalabilité sous stéroïde 17
  18. 18. ElasticSearch Demo 18
  19. 19. Use Case Migration d’une base de commande ... 2
  20. 20. Base de commande Projet de refonte Une base historique de commandes sous Oracle Le système de gestion de commande est recréée de 0 La nouvelle base de données sera hébergée sous MongoDB Il faut assurer l’accès aux anciennes commandes qui ne seront pas migrées
  21. 21. Exigences Unifier Enrichir Scaler horizontalement Temps réel
  22. 22. Du SGBDR vers Elastic Search
  23. 23. Du relationnel au document Modele relationnel Modele Document Commande Promotion Acheteur Promotion commande Article Article Article Acheteur 23
  24. 24. Intégrer les commandes Oracle Dénormaliser MongoDb ElasticSearch cluster 24
  25. 25. Importer les données River Plugin ‣ Code exécuté périodiquement par ElasticSearch ‣ Permet d’indexer des données par paquet ‣ Et de maintenir l’index à jour 25
  26. 26. Recherche unifiée Architecture obtenue Front ElasticSearch cluster Front Oracle MongoDb 26
  27. 27. Recherche unifiée Objectif atteint 27
  28. 28. Facettes Vers de nouveaux usages B.I. 3
  29. 29. Recherche a facettes ‣ Combien de commandes sont en cours de préparation dans un relai colis avec l’article défectueux ? ‣ Les back offices intègrent une navigation par facette pour répondre à ces questions : 29
  30. 30. Facette par termes Nombre de commandes par statut 30
  31. 31. Facette par range Nombre de commande par tranche 31
  32. 32. Meilleur expérience utilisateur ‣ Une navigation par facette permet d’affiner la recherche ‣ Fournit la possibilité de naviguer dans l’index en mode exploratoire 32
  33. 33. Catalogue Recherche exploratoire 33
  34. 34. Pour aller plus loin .... BI et monitoring métier 34
  35. 35. Monitoring métier ‣ Commandes en attente de traitement 3471 ‣ Alerte de seuil 2941 2390 ‣ Commandes en contrôle anti-fraude ‣ Commandes avec assurance 1589 ‣ ... avec promotion Etats des commandes 35
  36. 36. Monitoring métier ‣ Facette de type histogramme 36
  37. 37. La percolation ‣ Ajoutez des recherches au percolateur ‣ Identifiez à la volée les documents qui y correspondent ‣ Levez l’alerte correspondante 37
  38. 38. Logs Centralisation et exploitation 4
  39. 39. Centralisation des logs Indexez les logs ‣ Plusieurs outils du marché ‣ Pour collecter les logs et les importer dans un cluster ElasticSearch 39
  40. 40. Centralisation des logs Exploitez vos données avec Kibana 40
  41. 41. Kibana - Demo 41
  42. 42. Et + Autres feature, roadmap, ... 5
  43. 43. Quelques fonctions Recherche géographique 43
  44. 44. Quelques fonctions API de suggestion 44
  45. 45. Quelques fonctions Intégration native avec Hadoop 45
  46. 46. Road map Vers la 1.0 ‣ Refonte et enrichissement de l’API de facette ‣ Full cluster restart for upgrades support ‣ Outillage des backup / restore ‣ ... 46
  47. 47. Références 47
  48. 48. Merci de votre attention Des questions ?

×