Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
SlideShare une entreprise Scribd logo
Découverte d’Elastic Search:
{
“nom”: ”Jemli Fathi”,
“job”: “Software Engineer”,
“institute”: “ISSATSo”,
“community”: ”TB3C”
}
“You know, for Search”
Jemli Fathi
Troisième année ingénierie génie logiciel à ISSATSo
Vice président du Tunisian Big Data and Cloud Computing Community
● Moteur de recherche
○ Crée en 2010 par Shay Banon
○ Basé sur Apache Lucene (+multi-nodes)
○ Développé en Java
○ Open source (Licence Apache)
○ La société a été crée en 2012
○ La version courante est 2.0
○ Site officiel: https://www.elastic.co/
Elastic search ?
● Les clients
○ Facebook
○ Wikipédia
○ Banque de France
○ etc
Un moteur de recherche ?
● Indexation efficace des données
● Recherche et indexation portant sur tous les champs / combinaison de champs
● Analyse des données
● Recherche de texte
● Filtration
● Classement par pertinence
Pourquoi utiliser un moteur de recherche ?
● Une base de données(relationnelle surtout) n’est pas conçue pour la recherche
○ Les jointures
○ Les contraintes
Pourquoi Elasticsearch ?
● Open source
● Cache la complexité d’Apache Lucene
● Accessible à travers le cloud
● Une collection de produits très performants
Elasticsearch Stack
Installation
● Rendez vous sur https://www.elastic.
co/downloads/elasticsearch
● Choisissez la version stable
● Décompressez l’archive
● Lancez l’agent Elasticsearch
○ Windows: elasticsearch.bat
○ Linux: ./bin/elasticsearch
● Vérifiez qu’Elasticsearch est en marche
en allant sur http://localhost:9200/
Installation de l’extension Sense
● Allez sur https://chrome.google.com/webstore/detail/sense-
beta/lhjgkmllcaadmopgmanpapmpjgmfcfig?utm_source=chrome-ntp-icon
● Ajouter l’extension Sense à Google Chrome
● Ouvrirez l’extension et donnez localhost:9200 comme serveur
On est parti !
Installation de l’extension ES Toolbox
● Allez sur https://chrome.google.com/webstore/detail/sense-
beta/lhjgkmllcaadmopgmanpapmpjgmfcfig?utm_source=chrome-ntp-icon
● Ajouter l’extension ES Toolbox à Google Chrome
● Ouvrirez l’extension et donnez localhost:9200 comme url en haut à gauche
On est parti !
Manipulation de Elasticsearch
Soit le modèle suivant
Sauvegarder des données dans Elasticsearch
POST /bd3c/formation
{
"titre": "Elastic search",
"duree": 60,
"tags": ["elasticsearch", "nosql", "json"],
"prix":100
}
● “_id”: code unique varie suivant la
version
● “version”: un numéro qui indique
la version de ce documentOn appelle:
● “bd3c”: un index
● “formation”: type
Sélectionner des données dans Elasticsearch
GET /bd3c/formation/AVFzwj5sTY7bO17jCaPH
avec:
AVFzwj5sTY7bO17jCaPH: est l’id du document
ajouté précédemment
POST /bd3c/formation/_search
{
"query":{
"match_all": {}
}
}
Pour Sélectionner tous documents sous
formation
Modifier des données dans Elasticsearch
POST /bd3c/formation
{
"titre": "Langage R",
"duree": 30,
"tags": ["R", "data_mining", "statistics", "data_statistics"],
"prix":150
}
PUT /bd3c/formation/AVF0EhaSTY7bO17jCaPS
{
"titre": "Langage R",
"duree": 30,
"tags": ["R", "data_mining", "statistics", "data_analysis"],
"prix":100
}
Supprimer des données dans Elasticsearch
DELETE /bd3c/formation/AVFzzOuvTY7bO17jCaPL
GET /bd3c/formation/AVFzzOuvTY7bO17jCaPL
La recherche avec Elasticsearch
POST /bd3c/formation/_search
{
"query":{
"match": {"tags":"nosql"}
}
}
La recherche avec Elasticsearch
POST /bd3c/formation/_search
{
"query":{
"query_string":{
"query":"nosql"
}
}
}
POST /bd3c/formation/_search
{
"query":{
"query_string":{
"query":"redis"
, "fields": ["tags"]
}
}
}
POST /bd3c/formation/_search
{
"query":{
"query_string":{
"query":"tags:redis titre:Elastic search"
}
}
}
POST /bd3c/formation/_search
{
"query":{
"query_string":{
"query":"nosq~"
}
}
}
Manipulation de Elasticsearch avac Java
● On va utiliser Resty pour les appels
REST
○ Avec Maven
<dependency>
<groupId>us.monoid.web</groupId>
<artifactId>resty</artifactId>
<version>0.3.2</version>
</dependency>
○ Lien
http://repo2.maven.
org/maven2/us/monoid/web/resty/0.3.2
/resty-0.3.2.jar
https://beders.github.io/Resty/Resty/Overview.
html
Manipulation de Elasticsearch avac Java
try {
Resty resty = new Resty();
JSONObject jSONObject = resty.json("http://localhost:9200/bd3c/formation/AVFz9pkbTY7bO17jCaPR").
toObject();
System.out.println("Le document entier: "+jSONObject.getString("_source"));
JSONObject result = jSONObject.getJSONObject("_source");
String titre = result.getString("titre");
System.out.println("La valeur du titre"+titre);
} catch (Exception e) {
e.printStackTrace(); }
Vue d’ensemble sur Logstash
● Stocker, traiter et redirectionner les évènements et les
messages(exemple: les messages LOG).
● Les sources des données: des fichiers, des paquets
(TCP, UDP) et d’autres types de messages(Twitter, etc).
● Filtres avec des motifs prédéfinies.
● Les résultats: stocker ou envoyer vers de multiples
programmes et supports, principalement Elasticsearch,
Redis, Nagios, des fichiers.
Découverte de Elastic search
Découverte de Elastic search
Vue d’ensemble sur Kibana
● Plate forme de visualisation en temps réel de
données open source pour Elastic search.
● Des composants graphiques riches: Barres, des
camemberts(pie charts), nuage de points, des
cartes, etc.
Le monitoring avec Kibana
Merci pour votre attention

Contenu connexe

Découverte de Elastic search

  • 1. Découverte d’Elastic Search: { “nom”: ”Jemli Fathi”, “job”: “Software Engineer”, “institute”: “ISSATSo”, “community”: ”TB3C” } “You know, for Search”
  • 2. Jemli Fathi Troisième année ingénierie génie logiciel à ISSATSo Vice président du Tunisian Big Data and Cloud Computing Community
  • 3. ● Moteur de recherche ○ Crée en 2010 par Shay Banon ○ Basé sur Apache Lucene (+multi-nodes) ○ Développé en Java ○ Open source (Licence Apache) ○ La société a été crée en 2012 ○ La version courante est 2.0 ○ Site officiel: https://www.elastic.co/ Elastic search ?
  • 4. ● Les clients ○ Facebook ○ Wikipédia ○ Banque de France ○ etc
  • 5. Un moteur de recherche ? ● Indexation efficace des données ● Recherche et indexation portant sur tous les champs / combinaison de champs ● Analyse des données ● Recherche de texte ● Filtration ● Classement par pertinence
  • 6. Pourquoi utiliser un moteur de recherche ? ● Une base de données(relationnelle surtout) n’est pas conçue pour la recherche ○ Les jointures ○ Les contraintes
  • 7. Pourquoi Elasticsearch ? ● Open source ● Cache la complexité d’Apache Lucene ● Accessible à travers le cloud ● Une collection de produits très performants
  • 9. Installation ● Rendez vous sur https://www.elastic. co/downloads/elasticsearch ● Choisissez la version stable ● Décompressez l’archive ● Lancez l’agent Elasticsearch ○ Windows: elasticsearch.bat ○ Linux: ./bin/elasticsearch ● Vérifiez qu’Elasticsearch est en marche en allant sur http://localhost:9200/
  • 10. Installation de l’extension Sense ● Allez sur https://chrome.google.com/webstore/detail/sense- beta/lhjgkmllcaadmopgmanpapmpjgmfcfig?utm_source=chrome-ntp-icon ● Ajouter l’extension Sense à Google Chrome ● Ouvrirez l’extension et donnez localhost:9200 comme serveur On est parti !
  • 11. Installation de l’extension ES Toolbox ● Allez sur https://chrome.google.com/webstore/detail/sense- beta/lhjgkmllcaadmopgmanpapmpjgmfcfig?utm_source=chrome-ntp-icon ● Ajouter l’extension ES Toolbox à Google Chrome ● Ouvrirez l’extension et donnez localhost:9200 comme url en haut à gauche On est parti !
  • 13. Sauvegarder des données dans Elasticsearch POST /bd3c/formation { "titre": "Elastic search", "duree": 60, "tags": ["elasticsearch", "nosql", "json"], "prix":100 } ● “_id”: code unique varie suivant la version ● “version”: un numéro qui indique la version de ce documentOn appelle: ● “bd3c”: un index ● “formation”: type
  • 14. Sélectionner des données dans Elasticsearch GET /bd3c/formation/AVFzwj5sTY7bO17jCaPH avec: AVFzwj5sTY7bO17jCaPH: est l’id du document ajouté précédemment POST /bd3c/formation/_search { "query":{ "match_all": {} } } Pour Sélectionner tous documents sous formation
  • 15. Modifier des données dans Elasticsearch POST /bd3c/formation { "titre": "Langage R", "duree": 30, "tags": ["R", "data_mining", "statistics", "data_statistics"], "prix":150 } PUT /bd3c/formation/AVF0EhaSTY7bO17jCaPS { "titre": "Langage R", "duree": 30, "tags": ["R", "data_mining", "statistics", "data_analysis"], "prix":100 }
  • 16. Supprimer des données dans Elasticsearch DELETE /bd3c/formation/AVFzzOuvTY7bO17jCaPL GET /bd3c/formation/AVFzzOuvTY7bO17jCaPL
  • 17. La recherche avec Elasticsearch POST /bd3c/formation/_search { "query":{ "match": {"tags":"nosql"} } }
  • 18. La recherche avec Elasticsearch POST /bd3c/formation/_search { "query":{ "query_string":{ "query":"nosql" } } } POST /bd3c/formation/_search { "query":{ "query_string":{ "query":"redis" , "fields": ["tags"] } } } POST /bd3c/formation/_search { "query":{ "query_string":{ "query":"tags:redis titre:Elastic search" } } } POST /bd3c/formation/_search { "query":{ "query_string":{ "query":"nosq~" } } }
  • 19. Manipulation de Elasticsearch avac Java ● On va utiliser Resty pour les appels REST ○ Avec Maven <dependency> <groupId>us.monoid.web</groupId> <artifactId>resty</artifactId> <version>0.3.2</version> </dependency> ○ Lien http://repo2.maven. org/maven2/us/monoid/web/resty/0.3.2 /resty-0.3.2.jar https://beders.github.io/Resty/Resty/Overview. html
  • 20. Manipulation de Elasticsearch avac Java try { Resty resty = new Resty(); JSONObject jSONObject = resty.json("http://localhost:9200/bd3c/formation/AVFz9pkbTY7bO17jCaPR"). toObject(); System.out.println("Le document entier: "+jSONObject.getString("_source")); JSONObject result = jSONObject.getJSONObject("_source"); String titre = result.getString("titre"); System.out.println("La valeur du titre"+titre); } catch (Exception e) { e.printStackTrace(); }
  • 21. Vue d’ensemble sur Logstash ● Stocker, traiter et redirectionner les évènements et les messages(exemple: les messages LOG). ● Les sources des données: des fichiers, des paquets (TCP, UDP) et d’autres types de messages(Twitter, etc). ● Filtres avec des motifs prédéfinies. ● Les résultats: stocker ou envoyer vers de multiples programmes et supports, principalement Elasticsearch, Redis, Nagios, des fichiers.
  • 24. Vue d’ensemble sur Kibana ● Plate forme de visualisation en temps réel de données open source pour Elastic search. ● Des composants graphiques riches: Barres, des camemberts(pie charts), nuage de points, des cartes, etc.
  • 26. Merci pour votre attention