SlideShare une entreprise Scribd logo
Elasticsearch
Présentation
Un moteur de recherche
Objectifs
Pertinence des résultats
Performance
Alternatives
• Apache Solr (Ancienne génération, basé sur Lucene)
• Algolia (SaaS)
Présentation
Concepts clés d’Elasticsearch
● Architecture distribuée => haute disponibilité
● RESTful API / Documents JSON => developer-friendly
● Recherche full-text basée sur Apache Lucene => possibilités de recherche avancées
Terminologie
● Cluster : Définition logique de plus haut niveau d’un
ensemble organisé d’index répartis sur un ou plusieurs
nodes.
● Node : Instance (processus) d’elasticsearch. Un node
par machine.
● Shard : Instance de Lucene. Les shards sont distribués
sur les différents nodes.
● Replica : Chaque shard possède une copie.
● Index : Conteneur de données nommé. Configuration
d’un jeu de données et collection de documents.
● Type : Un ou plusieurs types sont définis par index.
Catégorie d’élément à indexer.
● Document : Donnée unitaire contenue dans un index.
Un document peut comprendre plusieurs champs.
● Field : Paire clé-valeur
● Mapping : Définition explicite ou implicite des
caractéristiques des champs à indexer.
Indexation
Analyzers
Character Filters (optionnel)
Traitement des chaînes de caractères avant de les passer
au tokenizer. Par exemple, convertir ‘&’ en ‘and’.
Tokenizer
Segmentation d’une chaîne de caractères.
Token Filters (optionnel)
Application de filtres sur les segments. Par exemple,
permet de supprimer des stopwords (de, au, aux, ...) ou
des élisions (l’, s’, n’, d’, ...).
Recherche
Principales queries
• Match_all Query => tous les documents
• Match Query => standard
• Multi_match Query => match sur de multiples champs
• Range Query => nombre / date entre deux valeurs
• Term Query => valeur exacte
• Terms Query => valeur exacte (plusieurs valeurs possibles)
Filtres
Utilisés pour inclure/exclure un résultat binaire.
Sur une recherche full-text ou pour chaque condition affectant le scoring, on utilise les clauses
Query, pour tout le reste on utilise les filtres.
Recherche
Function Score Query
Contrôle plus fin de la pertinence des résultats.
Exemple : Recherche de vidéo.
Score pondéré en fonction de la date et de la
popularité.
Possibilité de créer des scripts de scoring natifs
(java).
Recherche
Aggregations
Récupération d’un ensemble de statistiques
sur les éléments trouvés.
Metric (somme, minimum, maximum,
moyenne, …)
Bucketing (répartitions par termes, date,
valeur…)
Pipeline (expérimental)
Recherche
Autres features
Suggesters
Suggestion de termes, encore plus rapide qu’une recherche.
Highligthting
Permet de montrer les portions de texte matchant avec les termes recherchés.
Bulk operations
Opérations par lots : Index, create, delete or update.
Percolators
Recherche inversée. Stocker des requêtes afin de recevoir des notifications.
Communauté
Outils
● Plugins (HQ, HEAD)
● Extension Google Chrome (Sense)
● Elastic stack (Elaticsearch, Logstash, Kibana)
Ressources
https://www.elastic.co/guide/en/elasticsearch/reference/cu
rrent/_basic_concepts.html
https://www.elastic.co/guide/en/elasticsearch/guide/maste
r/index.html
http://docslide.us/presentations-public-
speaking/elasticsearch-at-dailymotion.html
https://qbox.io/blog/using-elasticsearch-percolation-in-the-
e-commerce-use-case
https://qbox.io/blog/optimizing-elasticsearch-how-many-
shards-per-index

Contenu connexe

Tendances

Elasticsearch From the Bottom Up
Elasticsearch From the Bottom UpElasticsearch From the Bottom Up
Elasticsearch From the Bottom Up
foundsearch
 
Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...
Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...
Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...
Edureka!
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
Hermeto Romano
 
Deep Dive Into Elasticsearch
Deep Dive Into ElasticsearchDeep Dive Into Elasticsearch
Deep Dive Into Elasticsearch
Knoldus Inc.
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
marwa baich
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
pmanvi
 
Elasticsearch for Data Analytics
Elasticsearch for Data AnalyticsElasticsearch for Data Analytics
Elasticsearch for Data Analytics
Felipe
 
ElasticSearch Basic Introduction
ElasticSearch Basic IntroductionElasticSearch Basic Introduction
ElasticSearch Basic Introduction
Mayur Rathod
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
Vikram Shinde
 
Découverte de Elastic search
Découverte de Elastic searchDécouverte de Elastic search
Découverte de Elastic search
JEMLI Fathi
 
Elasticsearch for beginners
Elasticsearch for beginnersElasticsearch for beginners
Elasticsearch for beginners
Neil Baker
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Ismaeel Enjreny
 
Elastic serach
Elastic serachElastic serach
Elastic serach
TAOUFIQ ELFILALI
 
Découverte de Redis
Découverte de RedisDécouverte de Redis
Découverte de RedisJEMLI Fathi
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
Ruslan Zavacky
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
Amal Abid
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
Lilia Sfaxi
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6
Amal Abid
 
Elastic Search
Elastic SearchElastic Search
Elastic Search
Navule Rao
 
Big data : défis & technologies
Big data : défis & technologiesBig data : défis & technologies
Big data : défis & technologies
Mohamed Ramzi Haddad
 

Tendances (20)

Elasticsearch From the Bottom Up
Elasticsearch From the Bottom UpElasticsearch From the Bottom Up
Elasticsearch From the Bottom Up
 
Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...
Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...
Elasticsearch Tutorial | Getting Started with Elasticsearch | ELK Stack Train...
 
Elasticsearch
ElasticsearchElasticsearch
Elasticsearch
 
Deep Dive Into Elasticsearch
Deep Dive Into ElasticsearchDeep Dive Into Elasticsearch
Deep Dive Into Elasticsearch
 
Hive ppt (1)
Hive ppt (1)Hive ppt (1)
Hive ppt (1)
 
Introduction to elasticsearch
Introduction to elasticsearchIntroduction to elasticsearch
Introduction to elasticsearch
 
Elasticsearch for Data Analytics
Elasticsearch for Data AnalyticsElasticsearch for Data Analytics
Elasticsearch for Data Analytics
 
ElasticSearch Basic Introduction
ElasticSearch Basic IntroductionElasticSearch Basic Introduction
ElasticSearch Basic Introduction
 
Elastic Stack Introduction
Elastic Stack IntroductionElastic Stack Introduction
Elastic Stack Introduction
 
Découverte de Elastic search
Découverte de Elastic searchDécouverte de Elastic search
Découverte de Elastic search
 
Elasticsearch for beginners
Elasticsearch for beginnersElasticsearch for beginners
Elasticsearch for beginners
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
Elastic serach
Elastic serachElastic serach
Elastic serach
 
Découverte de Redis
Découverte de RedisDécouverte de Redis
Découverte de Redis
 
Introduction to Elasticsearch
Introduction to ElasticsearchIntroduction to Elasticsearch
Introduction to Elasticsearch
 
Cours Big Data Chap5
Cours Big Data Chap5Cours Big Data Chap5
Cours Big Data Chap5
 
BigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big DataBigData_Chp1: Introduction à la Big Data
BigData_Chp1: Introduction à la Big Data
 
Cours Big Data Chap6
Cours Big Data Chap6Cours Big Data Chap6
Cours Big Data Chap6
 
Elastic Search
Elastic SearchElastic Search
Elastic Search
 
Big data : défis & technologies
Big data : défis & technologiesBig data : défis & technologies
Big data : défis & technologies
 

Similaire à Elasticsearch

Presentation Lucene / Solr / Datafari - Nantes JUG
Presentation Lucene / Solr / Datafari - Nantes JUGPresentation Lucene / Solr / Datafari - Nantes JUG
Presentation Lucene / Solr / Datafari - Nantes JUG
francelabs
 
Alphorm.com Formation Elastic : Maitriser les fondamentaux
Alphorm.com Formation Elastic : Maitriser les fondamentauxAlphorm.com Formation Elastic : Maitriser les fondamentaux
Alphorm.com Formation Elastic : Maitriser les fondamentaux
Alphorm
 
Présentation nouveauté java7
Présentation nouveauté java7Présentation nouveauté java7
Présentation nouveauté java7
Cynapsys It Hotspot
 
Geneva jug Lucene Solr
Geneva jug Lucene Solr Geneva jug Lucene Solr
Geneva jug Lucene Solr
francelabs
 
Adopte une BDD
Adopte une BDDAdopte une BDD
Adopte une BDD
Aymeric Brisse
 
Marseille JUG Novembre 2013 Lucene Solr France Labs
Marseille JUG Novembre 2013 Lucene Solr France LabsMarseille JUG Novembre 2013 Lucene Solr France Labs
Marseille JUG Novembre 2013 Lucene Solr France Labs
francelabs
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overview
Ludovic Piot
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
Oxalide
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
Microsoft
 
Azure Data Factory, Mouvement de données hybride
Azure Data Factory, Mouvement de données hybrideAzure Data Factory, Mouvement de données hybride
Azure Data Factory, Mouvement de données hybride
Jean-Pierre Riehl
 
Apport des thésaurus pour le catalogage et la localisation des données enviro...
Apport des thésaurus pour le catalogage et la localisation des données enviro...Apport des thésaurus pour le catalogage et la localisation des données enviro...
Apport des thésaurus pour le catalogage et la localisation des données enviro...
Desconnets Jean-Christophe
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
Laurent BUNIET
 
Fondamentaux d’une API REST
Fondamentaux d’une API RESTFondamentaux d’une API REST
Fondamentaux d’une API REST
Abdoulaye Dieng
 
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTBenchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
CHAKER ALLAOUI
 
Génération automatique de texte
Génération automatique de texteGénération automatique de texte
Génération automatique de texte
Estelle Delpech
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJSAbdoulaye Dieng
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08Loïc Descotte
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdf
andre543581
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
LarbaSAWADOGO2
 
Séminaire Inria IST - Référentiels et interoperabilité (2)
Séminaire Inria IST - Référentiels et interoperabilité (2)Séminaire Inria IST - Référentiels et interoperabilité (2)
Séminaire Inria IST - Référentiels et interoperabilité (2)
Antoine Isaac
 

Similaire à Elasticsearch (20)

Presentation Lucene / Solr / Datafari - Nantes JUG
Presentation Lucene / Solr / Datafari - Nantes JUGPresentation Lucene / Solr / Datafari - Nantes JUG
Presentation Lucene / Solr / Datafari - Nantes JUG
 
Alphorm.com Formation Elastic : Maitriser les fondamentaux
Alphorm.com Formation Elastic : Maitriser les fondamentauxAlphorm.com Formation Elastic : Maitriser les fondamentaux
Alphorm.com Formation Elastic : Maitriser les fondamentaux
 
Présentation nouveauté java7
Présentation nouveauté java7Présentation nouveauté java7
Présentation nouveauté java7
 
Geneva jug Lucene Solr
Geneva jug Lucene Solr Geneva jug Lucene Solr
Geneva jug Lucene Solr
 
Adopte une BDD
Adopte une BDDAdopte une BDD
Adopte une BDD
 
Marseille JUG Novembre 2013 Lucene Solr France Labs
Marseille JUG Novembre 2013 Lucene Solr France LabsMarseille JUG Novembre 2013 Lucene Solr France Labs
Marseille JUG Novembre 2013 Lucene Solr France Labs
 
Oxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overviewOxalide Workshop #3 - Elasticearch, an overview
Oxalide Workshop #3 - Elasticearch, an overview
 
Oxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic SearchOxalide Academy : Workshop #3 Elastic Search
Oxalide Academy : Workshop #3 Elastic Search
 
Azure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmediaAzure Camp 9 Décembre - slides session développeurs webmedia
Azure Camp 9 Décembre - slides session développeurs webmedia
 
Azure Data Factory, Mouvement de données hybride
Azure Data Factory, Mouvement de données hybrideAzure Data Factory, Mouvement de données hybride
Azure Data Factory, Mouvement de données hybride
 
Apport des thésaurus pour le catalogage et la localisation des données enviro...
Apport des thésaurus pour le catalogage et la localisation des données enviro...Apport des thésaurus pour le catalogage et la localisation des données enviro...
Apport des thésaurus pour le catalogage et la localisation des données enviro...
 
Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4Cours de C++, en français, 2002 - Cours 3.4
Cours de C++, en français, 2002 - Cours 3.4
 
Fondamentaux d’une API REST
Fondamentaux d’une API RESTFondamentaux d’une API REST
Fondamentaux d’une API REST
 
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoTBenchmarking NoSQL DataBase dans le cadre d'un projet IoT
Benchmarking NoSQL DataBase dans le cadre d'un projet IoT
 
Génération automatique de texte
Génération automatique de texteGénération automatique de texte
Génération automatique de texte
 
Introduction à AngularJS
Introduction à AngularJSIntroduction à AngularJS
Introduction à AngularJS
 
Apache solr andré bois-crettez 08
Apache solr   andré bois-crettez 08Apache solr   andré bois-crettez 08
Apache solr andré bois-crettez 08
 
DesignPatternsISI.pdf
DesignPatternsISI.pdfDesignPatternsISI.pdf
DesignPatternsISI.pdf
 
POO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdfPOO Licence L2 Partie I.pdf
POO Licence L2 Partie I.pdf
 
Séminaire Inria IST - Référentiels et interoperabilité (2)
Séminaire Inria IST - Référentiels et interoperabilité (2)Séminaire Inria IST - Référentiels et interoperabilité (2)
Séminaire Inria IST - Référentiels et interoperabilité (2)
 

Elasticsearch

  • 2. Présentation Un moteur de recherche Objectifs Pertinence des résultats Performance Alternatives • Apache Solr (Ancienne génération, basé sur Lucene) • Algolia (SaaS)
  • 3. Présentation Concepts clés d’Elasticsearch ● Architecture distribuée => haute disponibilité ● RESTful API / Documents JSON => developer-friendly ● Recherche full-text basée sur Apache Lucene => possibilités de recherche avancées
  • 4. Terminologie ● Cluster : Définition logique de plus haut niveau d’un ensemble organisé d’index répartis sur un ou plusieurs nodes. ● Node : Instance (processus) d’elasticsearch. Un node par machine. ● Shard : Instance de Lucene. Les shards sont distribués sur les différents nodes. ● Replica : Chaque shard possède une copie. ● Index : Conteneur de données nommé. Configuration d’un jeu de données et collection de documents. ● Type : Un ou plusieurs types sont définis par index. Catégorie d’élément à indexer. ● Document : Donnée unitaire contenue dans un index. Un document peut comprendre plusieurs champs. ● Field : Paire clé-valeur ● Mapping : Définition explicite ou implicite des caractéristiques des champs à indexer.
  • 5. Indexation Analyzers Character Filters (optionnel) Traitement des chaînes de caractères avant de les passer au tokenizer. Par exemple, convertir ‘&’ en ‘and’. Tokenizer Segmentation d’une chaîne de caractères. Token Filters (optionnel) Application de filtres sur les segments. Par exemple, permet de supprimer des stopwords (de, au, aux, ...) ou des élisions (l’, s’, n’, d’, ...).
  • 6. Recherche Principales queries • Match_all Query => tous les documents • Match Query => standard • Multi_match Query => match sur de multiples champs • Range Query => nombre / date entre deux valeurs • Term Query => valeur exacte • Terms Query => valeur exacte (plusieurs valeurs possibles) Filtres Utilisés pour inclure/exclure un résultat binaire. Sur une recherche full-text ou pour chaque condition affectant le scoring, on utilise les clauses Query, pour tout le reste on utilise les filtres.
  • 7. Recherche Function Score Query Contrôle plus fin de la pertinence des résultats. Exemple : Recherche de vidéo. Score pondéré en fonction de la date et de la popularité. Possibilité de créer des scripts de scoring natifs (java).
  • 8. Recherche Aggregations Récupération d’un ensemble de statistiques sur les éléments trouvés. Metric (somme, minimum, maximum, moyenne, …) Bucketing (répartitions par termes, date, valeur…) Pipeline (expérimental)
  • 9. Recherche Autres features Suggesters Suggestion de termes, encore plus rapide qu’une recherche. Highligthting Permet de montrer les portions de texte matchant avec les termes recherchés. Bulk operations Opérations par lots : Index, create, delete or update. Percolators Recherche inversée. Stocker des requêtes afin de recevoir des notifications.
  • 10. Communauté Outils ● Plugins (HQ, HEAD) ● Extension Google Chrome (Sense) ● Elastic stack (Elaticsearch, Logstash, Kibana) Ressources https://www.elastic.co/guide/en/elasticsearch/reference/cu rrent/_basic_concepts.html https://www.elastic.co/guide/en/elasticsearch/guide/maste r/index.html http://docslide.us/presentations-public- speaking/elasticsearch-at-dailymotion.html https://qbox.io/blog/using-elasticsearch-percolation-in-the- e-commerce-use-case https://qbox.io/blog/optimizing-elasticsearch-how-many- shards-per-index