découverte de elastic search
TRANSCRIPT
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 ?
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
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 !
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 ElasticsearchGET /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 ElasticsearchPOST /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":{ "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.
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.