Tirer le meilleur de ses données avec ElasticSearch

Preview:

DESCRIPTION

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 ?

Citation preview

Tirer le meilleur de ses données avec ElasticSearch

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

Agenda

3

‣ 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

ElasticSearchOui ! mais c’est quoi ?

1

Qu’est-ce qu’un moteur de recherche ?

ElasticSearch

5

Un moteur d’indexationElasticSearch

6

Document

7

Comment indexer ?ElasticSearch

Un moteur de recherche dans l’indexElasticSearch

8

Construire l’index

9

cleanup tokenize

stop wordstransform

Document

Alors pourquoi utiliser un moteur de recherche ?

ElasticSearch

10

Une base de données SQL n’est pas faite pour la recherche

ElasticSearch

11

Prenons un modèle simple

ElasticSearch

12

Pourquoi un moteur de recherche ?

‣ Match par champs

‣ Utiliser des jointures

‣ Construire une clause WHERE

‣ Et, ajouter les index en bases

ElasticSearch

13

ElasticSearch

14

ElasticSearch

15

La promesse est de simplifier la recherche au maximum via un seul champ.

Un middleware de donnéesElasticSearch

16

‣ NoSQL orienté document

‣ Apache Lucene

‣ API simple HTTP / REST + JSON

‣ Hautement disponible

‣ Cloud ready

Points fortsElasticSearch

17

Démarrage rapide : 5 minutes suffisent pour se lancer

Schemaless

convention over configuration

Scalabilité sous stéroïde

ElasticSearch Demo

18

Use CaseMigration d’une base de commande ...

2

Base de commandeProjet 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

Exigences

Unifier

Enrichir

Scaler horizontalement

Temps réel

Du SGBDR vers

Elastic Search

Modele relationnel

Du relationnel au document

23

Article

Promotion

Acheteur

commande

Modele Document

Commande

Promotion

Article

Article

Acheteur

Intégrer les commandes

24

Oracle

ElasticSearchcluster

Dénormaliser

MongoDb

Importer les donnéesRiver Plugin

25

‣ Code exécuté périodiquement par ElasticSearch

‣ Permet d’indexer des données par paquet

‣ Et de maintenir l’index à jour

Recherche unifiée

26

Architecture obtenue

Front

Front

ElasticSearchcluster

Oracle MongoDb

Recherche unifiée

27

Objectif atteint

Vers de nouveaux usages

3

Facettes

B.I.

Recherche a facettes

29

‣ 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 :

Facette par termes

30

Nombre de commandes par statut

Facette par range

31

Nombre de commande par tranche

Meilleur expérience utilisateur

32

‣ Une navigation par facette permet d’affiner la recherche

‣ Fournit la possibilité de naviguer dans l’index en mode exploratoire

CatalogueRecherche exploratoire

33

Pour aller plus loin ....

34

BI et monitoring métier

Monitoring métier

35

‣ Commandes en attente de traitement

‣ Alerte de seuil

‣ Commandes en contrôle anti-fraude

‣ Commandes avec assurance

‣ ... avec promotion

Etats des commandes

2390

3471

1589

2941

Monitoring métier

36

‣ Facette de type histogramme

37

La percolation

‣ Ajoutez des recherches au percolateur

‣ Identifiez à la volée les documents qui y correspondent

‣ Levez l’alerte correspondante

LogsCentralisation et exploitation

4

39

Centralisation des logsIndexez les logs

‣ Plusieurs outils du marché

‣ Pour collecter les logs et les importer dans un cluster ElasticSearch

40

Centralisation des logsExploitez vos données avec Kibana

41

Kibana - Demo

Et +Autres feature, roadmap, ...

5

Quelques fonctions

43

Recherche géographique

44

Quelques fonctionsAPI de suggestion

Quelques fonctions

45

Intégration native avec Hadoop

Vers la 1.0Road map

46

‣ Refonte et enrichissement de l’API de facette

‣ Full cluster restart for upgrades support

‣ Outillage des backup / restore

‣ ...

Références

47

Merci de votre

attention

Des questions ?

Recommended