découverte de elastic search

26
Découverte d’Elastic Search: { “nom”: ”Jemli Fathi”, “job”: “Software Engineer”, “institute”: “ISSATSo”, “community”: ”TB3C” } “You know, for Search”

Upload: jemli-fathi

Post on 08-Jan-2017

563 views

Category:

Data & Analytics


1 download

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 ?

● 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 ElasticsearchSoit 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 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 ElasticsearchPOST /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.

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