Présentation de ElasticSearch / Digital apéro du 12/11/2014Silicon Comté
ElasticSearch est un moteur de recherche open source reposant sur une interface JSON, pouvant fonctionner en mode distribué et interrogeable facilement via son API REST. Cédric Nirousset, Développeur web indépendant, vous fera découvrir les intérêts de l’utiliser dans vos applications à travers quelques exemples pratiques.
A propos de l’intervenant : Cédric Nirousset, diplomé dut DUT SRC Montébliard en 2006 et de l’UTBM en Informatique en 2010, il est maintenant développeur web indépendant à Besançon, travaillant pour des entreprises de toutes tailles et tous horizons. Suivez Cédric sur Twitter @Nyr0
Présentation d'Elasticsearch lors de Devoxx France 2012
Contenu en français
English translation available here : http://www.slideshare.net/dadoonet/elasticsearch-devoxx-france-2012-english-version
Introduction à ElasticSearch et les possibilités offertes par l'outil.
Retours d'expériences, recommandations et demonstration des outils gravitant autour : Kibana, Rivers, Logstash...
Téléchargez le fichier pour disposer des animations !
Oxalide Workshop #3 - Elasticearch, an overviewLudovic Piot
Après les 2 précédents ateliers Varnish, c’est au tour d’ElasticSearch de passer entre les mains Ludovic Piot (Oxalide) avec Edouard Fajnzilberg (Kernel42) . Ils ont déroulé le sujet avec les points de vue Syadmin et Dev.
Subject: Oxalide's workshop about an overview of elasticsearch.
Date: 10-mar-2016
Speakers: Edouard Fajnzilberg (Kernel42) and Ludovic Piot (Oxalide)
Language: french
Video capture: https://youtu.be/3bPoeVoUdFI
Main topics:
When do we use elasticsearch?
Why is it cool?
Introduction to Head plugin
Introduction to the REST API
Introduction to the Query DSL and the JSON document
How to configure a cluster?
How does it compare to a SGBD-R?
How does a reversed-index work?
An explaination of Lucene Segments
An explaination of the cluster architecture
An overview of the mappings (principles, dynamic mapping and templates)
An overview of the aggregations (buckets, metrics, multiple, nestable, sortable, aggregation types, use cases, pipelines)
An overview of the ecosystem (Sense, Logstash, Beats, Kibana, TimeLion, Marvel, Watcher, Shield, Head, Kopf, HQ, Inquisitor, BigDesk, SegmentSpy)
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?Sébastien Prunier
MongoDB ? Elastic ? Ces technologies sont elles faites pour être concurrentes ?
C'est l'histoire d'une rencontre entre deux technologies. A l'occasion de cette conférence vous apprendrez comment MongoDB et Elastic peuvent se compléter, comment tirer partie du meilleur de chaque monde : "le bon outil pour le bon usage".
Enfin, nous vous présenterons les principaux patterns d'architecture permettant d'intégrer ces deux technologies.
Elastic search
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/
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearchfrancelabs
Cette présentation donne un comparatif sur les technologie de recherche open source que sont Apache Solr et ElasticSearch. Après avoir introduit brièvement les notions de moteur de recherche open source pour entreprise, Lucene, Solr et ElasticSearch seront expliqués.
Présentation donnée avec @_bruno_b_ lors du @breizhcamp 2016
Vous avez coder votre première application avec MongoDB, c'est décidé votre prochain vrai prochain utilisera cette base NoSQL. Il vous faudra éviter quelques écueils avant que tout fonctionne en production. Nous en parlons dans cette présentation.
Solr and Elasticsearch in Action (at Breizhcamp)Lucian Precup
Lucene @ Breizhcamp
Lucene, la fameuse technologie pour l’indexation, la recherche et l’analyse du texte a été présente à l'édition 2012 de Breizhcamp à travers deux sessions « Tools In Action » : ElasticSearch et Solr.
Allant au-delà du tutorial, ces deux sessions ont permis de découvrir des patterns d’architecture pour l'intégration d'un moteur de recherche et navigation dans un SI ainsi que de comprendre l’alternative qu’offrent les moteurs de recherche et les approches NoSQL aux bases de données relationnelles. Des subtilités sur l’analyse du texte ont été abordées afin de montrer les forces mais aussi les limites de la magie Lucene. Les démonstrations de chaque technologie et des outils dans leur écosystème ont rendu la présentation plus interactive.
La vidéo de la présentation se trouve sur Parleys (http://www.parleys.com/#st=5&id=3351).
Oxalide Academy : Workshop #3 Elastic SearchOxalide
Atelier organisé par Oxalide (Ludovic Piot) et Kernel 42 (Edouard Fajnzilberg) à destination des niveaux débutants et intermédiaire. Le point de vue du Syadmin et du Dev en un seul atelier et avoir une vision globale du fonctionnement et de l'usage d'Elastic Search.
Présentation de ElasticSearch / Digital apéro du 12/11/2014Silicon Comté
ElasticSearch est un moteur de recherche open source reposant sur une interface JSON, pouvant fonctionner en mode distribué et interrogeable facilement via son API REST. Cédric Nirousset, Développeur web indépendant, vous fera découvrir les intérêts de l’utiliser dans vos applications à travers quelques exemples pratiques.
A propos de l’intervenant : Cédric Nirousset, diplomé dut DUT SRC Montébliard en 2006 et de l’UTBM en Informatique en 2010, il est maintenant développeur web indépendant à Besançon, travaillant pour des entreprises de toutes tailles et tous horizons. Suivez Cédric sur Twitter @Nyr0
Présentation d'Elasticsearch lors de Devoxx France 2012
Contenu en français
English translation available here : http://www.slideshare.net/dadoonet/elasticsearch-devoxx-france-2012-english-version
Introduction à ElasticSearch et les possibilités offertes par l'outil.
Retours d'expériences, recommandations et demonstration des outils gravitant autour : Kibana, Rivers, Logstash...
Téléchargez le fichier pour disposer des animations !
Oxalide Workshop #3 - Elasticearch, an overviewLudovic Piot
Après les 2 précédents ateliers Varnish, c’est au tour d’ElasticSearch de passer entre les mains Ludovic Piot (Oxalide) avec Edouard Fajnzilberg (Kernel42) . Ils ont déroulé le sujet avec les points de vue Syadmin et Dev.
Subject: Oxalide's workshop about an overview of elasticsearch.
Date: 10-mar-2016
Speakers: Edouard Fajnzilberg (Kernel42) and Ludovic Piot (Oxalide)
Language: french
Video capture: https://youtu.be/3bPoeVoUdFI
Main topics:
When do we use elasticsearch?
Why is it cool?
Introduction to Head plugin
Introduction to the REST API
Introduction to the Query DSL and the JSON document
How to configure a cluster?
How does it compare to a SGBD-R?
How does a reversed-index work?
An explaination of Lucene Segments
An explaination of the cluster architecture
An overview of the mappings (principles, dynamic mapping and templates)
An overview of the aggregations (buckets, metrics, multiple, nestable, sortable, aggregation types, use cases, pipelines)
An overview of the ecosystem (Sense, Logstash, Beats, Kibana, TimeLion, Marvel, Watcher, Shield, Head, Kopf, HQ, Inquisitor, BigDesk, SegmentSpy)
[Breizhcamp 2015] MongoDB et Elastic, meilleurs ennemis ?Sébastien Prunier
MongoDB ? Elastic ? Ces technologies sont elles faites pour être concurrentes ?
C'est l'histoire d'une rencontre entre deux technologies. A l'occasion de cette conférence vous apprendrez comment MongoDB et Elastic peuvent se compléter, comment tirer partie du meilleur de chaque monde : "le bon outil pour le bon usage".
Enfin, nous vous présenterons les principaux patterns d'architecture permettant d'intégrer ces deux technologies.
Elastic search
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/
Besoin de rien Envie de Search - Presentation Lucene Solr ElasticSearchfrancelabs
Cette présentation donne un comparatif sur les technologie de recherche open source que sont Apache Solr et ElasticSearch. Après avoir introduit brièvement les notions de moteur de recherche open source pour entreprise, Lucene, Solr et ElasticSearch seront expliqués.
Présentation donnée avec @_bruno_b_ lors du @breizhcamp 2016
Vous avez coder votre première application avec MongoDB, c'est décidé votre prochain vrai prochain utilisera cette base NoSQL. Il vous faudra éviter quelques écueils avant que tout fonctionne en production. Nous en parlons dans cette présentation.
Solr and Elasticsearch in Action (at Breizhcamp)Lucian Precup
Lucene @ Breizhcamp
Lucene, la fameuse technologie pour l’indexation, la recherche et l’analyse du texte a été présente à l'édition 2012 de Breizhcamp à travers deux sessions « Tools In Action » : ElasticSearch et Solr.
Allant au-delà du tutorial, ces deux sessions ont permis de découvrir des patterns d’architecture pour l'intégration d'un moteur de recherche et navigation dans un SI ainsi que de comprendre l’alternative qu’offrent les moteurs de recherche et les approches NoSQL aux bases de données relationnelles. Des subtilités sur l’analyse du texte ont été abordées afin de montrer les forces mais aussi les limites de la magie Lucene. Les démonstrations de chaque technologie et des outils dans leur écosystème ont rendu la présentation plus interactive.
La vidéo de la présentation se trouve sur Parleys (http://www.parleys.com/#st=5&id=3351).
Oxalide Academy : Workshop #3 Elastic SearchOxalide
Atelier organisé par Oxalide (Ludovic Piot) et Kernel 42 (Edouard Fajnzilberg) à destination des niveaux débutants et intermédiaire. Le point de vue du Syadmin et du Dev en un seul atelier et avoir une vision globale du fonctionnement et de l'usage d'Elastic Search.
Construisez votre première application MongoDBMongoDB
Démarrez votre journée avec une introduction à MongoDB en créant une application web simple basée sur le stack MEAN et en exécutant Serverless sur AWS. Tout d'abord, nous aborderons les bases de la conception de schéma, de la sécurité, des requêtes et de l'indexation. Puis nous déploierons l'application sur AWS à l'aide des API Gateway, Lambda et MongoDB Atlas.
Devoxx: Tribulation d'un développeur sur le CloudTugdual Grall
Comme beaucoup de développeurs une grande partie de mon temps libre est utilisé pour découvrir de nouvelles technologies et développer des applications avec celles-ci.
J'ai donc choisi de découvrir le développement d'application Java sur le cloud, avec Google AppEngine, pour créer le site http://www.resultri.com qui permet de gérer les resultats de triathlon (mon autre passion).
Développer cette application est une aventure interessante que je partage avec vous durant ce BOF:
découverte de GAE et des outils de developpement
les "surprises" du NoSQL, surtout pour un cerveau "cablé relationnel comme le mien"
hmmm tout n'est pas gratuit?
les quelques trucs à savoir : l'importance de memcache, utilisation de CloudSQL, les batchs....
Conférence Devoxx FR 2022
"Microservices, DDD et bootstrapping pour faire un départ lancé"
Résumé de la présentation :
Associer microservices et conception DDD (Domain-Driven Design) semble une évidence. Le découpage en contextes et les différentes couches d’architecture constituent un cadre séduisant pour bâtir des microservices avec une structure stéréotypée. Mais si on souhaite respecter les fondamentaux du DDD et garantir l’isolation des différentes couches on arrive rapidement à une structure de projet basée sur plusieurs modules qui peuvent devenir complexes à gérer et qui risquent de ralentir le cycle de développement, en particulier lors de la phase de démarrage.
Cette présentation est un retour d’expérience d’un grand projet dans lequel le générateur de code Telosys a été utilisé pour automatiser la phase d’amorçage de chaque microservice.
Environnement technique : Java, SpringBoot, Telosys
SQLSaturday Toulouse 2017 - Azure Data Lake : SELECT people FROM data-lake WH...Jean-Pierre Riehl
--session donnée dans le cadre du SQLSaturday Toulouse 2017--
Discover Azure Date Lake through a complete demo : how to get insights from tons of text, photos and videos ? From different media files and raw data, we will analyze sentiment of characters and get valuable information in a Power BI dashboard, using Cognitive Services, CNTK, .NET and U-SQL.
This session will mainly showcase Azure Data Lake and U-SQL language. But demos will involve different tools like Azure Data Factory for data supply chain and orchestration, Azure SQL Datawarehouse for corporate data and also Azure Machine Learning and Power BI.
Even if this session is demo-driven, we won't omit to present you concepts and features of Azure Data Lake.
Mise en place d’un moteur de recherche et de recommandation de documents text...AbdeslamAMRANE3
Actuellement, tout organisme est à la recherche d’informations pertinentes sur soit même et son environnement. La détention de cette information constitue un atout majeur et un gain en temps et en argent.
Cependant, le volume d’information stockée électroniquement ne cesse de s’accroître. De plus, l’information disséminée dans un document n’est pas structurée et donc difficilement accessible voire identifiable.
Par conséquent, se pose le problème de retrouver de manière pertinente un ensemble d’informations contenu au sein d’une base documentaire, appelée corpus. Cette problématique générale appelée Recherche d'Information (RI) dans les documents, aussi connue sous le nom Recherche Documentaire (RD) par le contenu, constitue le contexte de nos travaux.
Notre étude est principalement dédiée à la représentation de l’information contenue dans un document au sein d'un système de recherche d'information, c'est à dire à l'indexation des documents. Nos travaux se limitent au traitement de documents textuelles, toute utilisation du terme « document » fera uniquement référence à son contenu textuel.
Nous travaillerons dans un environnement Big data où nos documents seront stockés afin de dépasser les limites de stockages habituelles et profiter les avantages offert par cet environnement.
Dans le but de facilité la recherche aux utilisateurs, nous concevrons un système automatique de recommandation permettant, à partir des recherches précédentes, d’indiquer des thèses qui sont les plus proches des préoccupations de l’utilisateur.
Nous avons intégré un module data mining utilisant la technique d'extraction des règles d'association afin de recommander les documents fréquemment associées dans une même recherche.
Nous adopterons à cet effet l'extraction des itemsets fréquents et nous avons utilisé l’algorithme appriori.
Pour donner un aspect pratique à nos travaux, nous exploiterons le dépôt légal des thèses au niveau du CERIST (versions numérique) dont le contenu textuel jusqu'à présent n’est pas encore indexé, comme corpus pour nos travaux.
- Pour réaliser ce travail on procédera comme suit :
- Le premier chapitre, contiendra une étude théorique et comparative des fonctionnalités des différents moteurs de recherche existants.
- Le deuxième chapitre sera consacré l’état de l’art sur les concepts de base des systèmes de recommandation, et ses techniques et approches de filtrages d’information.
- Le troisième chapitre, donne une idée sur le Big data et les plateformes Big data
- Le quatrième chapitre fera le point sur la conception du projet.
- Le cinquième chapitre pour la l’implémentation de notre projet
- Et enfin un dernier chapitre pour une évaluation d’n système de recherche d’information et un système de recommandation.
L’objet de ce projet est de mettre en œuvre dans un environnement Big data, un système pour stocker, indexer et rechercher les documents de la production scientifique nationale.
MySQL Innovation & Cloud Day - Document Store avec MySQL HeatWave Database Se...Frederic Descamps
Découvrez un nouveau monde où l'on peut gérer ses données sans la moindre ligne de SQL.
MySQL Document Store utilise le nouveau protocol MySQL X, qui est également présent avec MySQL Database Service sur OCI, et permet aux développeurs d'écrire du code simple et efficace.
Mais attention, si nécessaire, MySQL Document Store peut également traiter les document JSON comme s'ils étaient des tables relationnelles et permettre des requêtes très poussées...
Oxalide MorningTech #1 - BigData
1er MorningTech @Oxalide, animé par Ludovic Piot (@lpiot), le 15 décembre 2016.
Pour cette 1ère édition du Morning Tech nous vous proposons une overview sur un des thèmes du moment : le Big Data.
Au delà de ce buzz word nous aborderons :
Les grands concepts
Les étapes clés des projets Big Data et les technologies à utiliser (stockage, ingestion, …)
Les enjeux des architectures Big Data (architecture lambda, …)
L'intelligence artificielle (machine learning, deep learning, …)
Et nous finirons par un cas d'usage du big data sur AWS autour de l'utilisation des données gyroscopiques de vos internautes mobiles
Subject: Oxalide's 1st MorningTech talk about BigData.
Date: 15-dec-2016
Speakers: Ludovic Piot (@lpiot, @oxalide)
Language: french
Lien SpeakerDeck : https://speakerdeck.com/lpiot/oxalide-morningtech-number-1-bigdata
Lien SlideShare : https://www.slideshare.net/LudovicPiot/oxalide-morningtech-1-bigdata
YouTube Video capture: https://youtu.be/7O85lRzvMY0
Main topics:
* Les grands enjeux du BigData
** les 3 V du Gartner : volume, variété, vélocité
* Le stockage des données
** datalake
** les technos
* L'ingestion des données
** ETL
** datastream
** les technos
* Les enjeux du compute
** map-reduce
** spark
** lambda architecture
* Démo d'une plateforme BigData sur AWS
* L'intelligence artificielle
** datascience exploratoire et notebooks,
** machine learning,
** deep learning,
** data pipeline
** les technos
* Pour aller plus loin
** La gouvernance des données
** La dataviz
2018-10-02 - Un moteur de recherche NoSQL pour chercher^H^H^H^H^H^H^H^H trouv...David Pilato
Vous cherchez toujours dans vos données avec des SELECT * FROM person WHERE name like '%david%pilato%" ?
Au delà des performances obtenues, êtes-vous certain de renvoyer les résultats les plus pertinents pour vos utilisateurs d'abord ?
Venez découvrir comment un moteur de recherche vous aidera à répondre aux questions posées par vos utilisateurs, de manière pertinente et efficace, tout en apportant des fonctionnalités d'analyse des résultats et ce, quelque soit le volume...
Managing your black friday logs Voxxed LuxembourgDavid Pilato
Surveiller une application complexe n'est pas une tâche aisée, mais avec les bons outils, ce n'est pas si sorcier. Néanmoins, des périodes fortes telles que les opérations de type "Black Friday" (Vendredi noir) ou période de Noël peuvent pousser votre application aux limites de ce qu'elle peut supporter, ou pire, la faire crasher. Parce que le système est fortement sollicité, il génère encore davantage de logs qui peuvent également mettre à mal votre système de supervision.
Dans cette session, j'aborderai les bonnes pratiques d'utilisation de la suite Elastic pour centraliser et monitorer vos logs. Je partagerai également avec vous quelques trucs et astuces pour vous aider à passer sans souci vos Vendredis noirs !
Nous verrons :
* Les architectures de monitoring
* Trouver la taille optimale pour l'API _bulk
* Distribuer la charge
* Taille des index et des shards
* Optimiser les E/S disque
Vous ressortirez de la session avec : des bonnes pratiques pour bâtir son système de monitoring avec la suite Elastic, le tuning avancé pour optimiser les performances d'ingestion et de recherche.
Un moteur de recherche NoSQL pour chercher^H^H^H^H^H^H^H^H trouver...David Pilato
Vous cherchez toujours dans vos données avec des SELECT * FROM person WHERE name like '%david%pilato%" ?
Au delà des performances obtenues, êtes-vous certain de renvoyer les résultats les plus pertinents pour vos utilisateurs d'abord ?
Venez découvrir comment un moteur de recherche vous aidera à répondre aux questions posées par vos utilisateurs, de manière pertinente et efficace, tout en apportant des fonctionnalités d'analyse des résultats et ce, quelque soit le volume...
Managing your Black Friday Logs NDC OsloDavid Pilato
Monitoring an entire application is not a simple task, but with the right tools it is not a hard task either. However, events like Black Friday can push your application to the limit, and even cause crashes. As the system is stressed, it generates a lot more logs, which may crash the monitoring system as well. In this talk I will walk through the best practices when using the Elastic Stack to centralize and monitor your logs. I will also share some tricks to help you with the huge increase of traffic typical in Black Fridays.
Topics include:
* monitoring architectures
* optimal bulk size
* distributing the load
* index and shard size
* optimizing disk IO
Takeaway: best practices when building a monitoring system with the Elastic Stack, advanced tuning to optimize and increase event ingestion performance.
Managing your black friday logs - Code EuropeDavid Pilato
Monitoring an entire application is not a simple task, but with the right tools it is not a hard task either. However, events like Black Friday can push your application to the limit, and even cause crashes. As the system is stressed, it generates a lot more logs, which may crash the monitoring system as well. In this talk I will walk through the best practices when using the Elastic Stack to centralize and monitor your logs. I will also share some tricks to help you with the huge increase of traffic typical in Black Fridays.
Topics include:
* monitoring architectures
* optimal bulk size
* distributing the load
* index and shard size
* optimizing disk IO
Takeaway: best practices when building a monitoring system with the Elastic Stack, advanced tuning to optimize and increase event ingestion performance.
Managing your black Friday logs - CloudConf.ITDavid Pilato
Monitoring an entire application is not a simple task, but with the right tools it is not a hard task either. However, events like Black Friday can push your application to the limit, and even cause crashes. As the system is stressed, it generates a lot more logs, which may crash the monitoring system as well. In this talk I will walk through the best practices when using the Elastic Stack to centralize and monitor your logs. I will also share some tricks to help you with the huge increase of traffic typical in Black Fridays.
Elasticsearch - Devoxx France 2012 - English versionDavid Pilato
Elasticsearch presentation for Devoxx France 2012
English translation (feel free to correct my bad english ;-) )
French version is available here : http://www.slideshare.net/dadoonet/elasticsearch-devoxx-france-2012
5. Elasticsearch.com
• Créée en 2012 par les auteurs
d’Elasticsearch
• Formation (publique et intra)
• Consulting (support dév)
• Abonnement annuel support pour la
production avec 3 niveaux de SLA
(délai de réponse et disponibilité)
mercredi 15 mai 13
6. Pour la démo
Faites du bruit sur Twitter
avec le hashtag
#elasticsearch
mercredi 15 mai 13
7. SQL Classique
Cherche moi un document
de décembre 2011 portant sur la france
et contenant produit et david
En SQL :
mercredi 15 mai 13
8. SQL Classique
Cherche moi un document
de décembre 2011 portant sur la france
et contenant produit et david
En SQL :
SELECT
doc.*, pays.*
FROM
doc, pays
WHERE
doc.pays_code = pays.code AND
doc.date_doc > to_date('2011-12', 'yyyy-mm') AND
doc.date_doc < to_date('2012-01', 'yyyy-mm') AND
lower(pays.libelle) = 'france' AND
lower(doc.commentaire) LIKE ‘%produit%' AND
lower(doc.commentaire) LIKE ‘%david%';
mercredi 15 mai 13
18. Points clés
• Simple: start in 5 minutes 30 seconds
• Efficace: just start new nodes!
mercredi 15 mai 13
19. Points clés
• Simple: start in 5 minutes 30 seconds
• Efficace: just start new nodes!
• Puissant: 20-300ms!
mercredi 15 mai 13
20. Points clés
• Simple: start in 5 minutes 30 seconds
• Efficace: just start new nodes!
• Puissant: 20-300ms!
• Complet: built-in + plugins
mercredi 15 mai 13
21. Penser « document » !
• Document : Un objet représentant les données (au sens
NoSQL).
Penser "recherche", c'est oublier le SGBDR et penser
"Documents"
• Type : Regroupe des documents de même type
• Index : Espace logique de stockage des documents dont les
types sont fonctionnellement communs
mercredi 15 mai 13
22. Penser « document » !
• Document : Un objet représentant les données (au sens
NoSQL).
Penser "recherche", c'est oublier le SGBDR et penser
"Documents"
• Type : Regroupe des documents de même type
• Index : Espace logique de stockage des documents dont les
types sont fonctionnellement communs
{
"text": "Bienvenue à la conférence #elasticsearch pour #JUG",
"created_at": "2012-04-06T20:45:36.000Z",
"source": "Twitter for iPad",
"truncated": false,
"retweet_count": 0,
"hashtag": [ { "text": "elasticsearch", "start": 27, "end": 40 },
{ "text": "JUG", "start": 47, "end": 55 } ],
"user": { "id": 51172224, "name": "David Pilato",
"screen_name": "dadoonet", "location": "France",
"description": "Soft Architect, Project Manager, Senior Developper.rnAt this time, enjoying NoSQL
world : CouchDB, ElasticSearch.rnDeeJay 4 times a year, just for fun !" }
}
mercredi 15 mai 13
23. Penser « document » !
• Document : Un objet représentant les données (au sens
NoSQL).
Penser "recherche", c'est oublier le SGBDR et penser
"Documents"
• Type : Regroupe des documents de même type
{
"text": "Bienvenue à la conférence #elasticsearch pour #JUG",
"created_at": "2012-04-06T20:45:36.000Z",
"source": "Twitter for iPad",
"truncated": false,
"retweet_count": 0,
"hashtag": [ { "text": "elasticsearch", "start": 27, "end": 40 },
{ "text": "JUG", "start": 47, "end": 55 } ],
"user": { "id": 51172224, "name": "David Pilato",
"screen_name": "dadoonet", "location": "France",
"description": "Soft Architect, Project Manager, Senior Developper.rnAt this time, enjoying NoSQL
world : CouchDB, ElasticSearch.rnDeeJay 4 times a year, just for fun !" }
}
mercredi 15 mai 13
24. Penser « document » !
• Document : Un objet représentant les données (au sens
NoSQL).
Penser "recherche", c'est oublier le SGBDR et penser
"Documents"
• Type : Regroupe des documents de même type
• Index : Espace logique de stockage des documents dont les
types sont fonctionnellement communs
{
"text": "Bienvenue à la conférence #elasticsearch pour #JUG",
"created_at": "2012-04-06T20:45:36.000Z",
"source": "Twitter for iPad",
"truncated": false,
"retweet_count": 0,
"hashtag": [ { "text": "elasticsearch", "start": 27, "end": 40 },
{ "text": "JUG", "start": 47, "end": 55 } ],
"user": { "id": 51172224, "name": "David Pilato",
"screen_name": "dadoonet", "location": "France",
"description": "Soft Architect, Project Manager, Senior Developper.rnAt this time, enjoying NoSQL
world : CouchDB, ElasticSearch.rnDeeJay 4 times a year, just for fun !" }
}
mercredi 15 mai 13
63. Quelques Rivers...
• CouchDB River
• CouchBase River
• MongoDB River
• JDBC River
• Wikipedia River
mercredi 15 mai 13
64. Quelques Rivers...
• CouchDB River
• CouchBase River
• MongoDB River
• JDBC River
• Wikipedia River
• Twitter River
mercredi 15 mai 13
65. Quelques Rivers...
• CouchDB River
• CouchBase River
• MongoDB River
• JDBC River
• Wikipedia River
• Twitter River
• RabbitMQ River
mercredi 15 mai 13
66. Quelques Rivers...
• CouchDB River
• CouchBase River
• MongoDB River
• JDBC River
• Wikipedia River
• Twitter River
• RabbitMQ River
• ActiveMQ River
mercredi 15 mai 13
67. Quelques Rivers...
• CouchDB River
• CouchBase River
• MongoDB River
• JDBC River
• Wikipedia River
• Twitter River
• RabbitMQ River
• ActiveMQ River
• RSS River
mercredi 15 mai 13
68. Quelques Rivers...
• CouchDB River
• CouchBase River
• MongoDB River
• JDBC River
• Wikipedia River
• Twitter River
• RabbitMQ River
• ActiveMQ River
• RSS River
• LDAP River
mercredi 15 mai 13
69. Quelques Rivers...
• CouchDB River
• CouchBase River
• MongoDB River
• JDBC River
• Wikipedia River
• Twitter River
• RabbitMQ River
• ActiveMQ River
• RSS River
• LDAP River
• FS River
mercredi 15 mai 13
70. Quelques Rivers...
• CouchDB River
• CouchBase River
• MongoDB River
• JDBC River
• Wikipedia River
• Twitter River
• RabbitMQ River
• ActiveMQ River
• RSS River
• LDAP River
• FS River
• Dropbox River
mercredi 15 mai 13
71. Quelques Rivers...
• CouchDB River
• CouchBase River
• MongoDB River
• JDBC River
• Wikipedia River
• Twitter River
• RabbitMQ River
• ActiveMQ River
• RSS River
• LDAP River
• FS River
• Dropbox River
• Dick Rivers
mercredi 15 mai 13
72. Analyser
La puissance des facettes !
Faites parler vos données en les regardant sous différentes facettes !
(Et en temps quasi réel, s’il vous plait !)
mercredi 15 mai 13
79. Date Histogram Facet
Date Hashtag
2012-04-18 1
2012-04-18 5
h 2012-04-18 2
2012-04-18 2
2012-04-18 6
h 2012-04-19 3
2012-04-19 3
2012-04-19 7
h 2012-04-20 4
mercredi 15 mai 13
80. Date Histogram Facet
Date Hashtag
2012-04-18 1
2012-04-18 5
h 2012-04-18 2
2012-04-18 2
2012-04-18 6
h 2012-04-19 3
2012-04-19 3
2012-04-19 7
h 2012-04-20 4
Par moisPar mois
Date Count
2012-04 9
mercredi 15 mai 13
81. Date Histogram Facet
Date Hashtag
2012-04-18 1
2012-04-18 5
h 2012-04-18 2
2012-04-18 2
2012-04-18 6
h 2012-04-19 3
2012-04-19 3
2012-04-19 7
h 2012-04-20 4
Par moisPar mois
Date Count
2012-04 9
Par jourPar jour
Date Count
2012-04-18 5
2012-04-19 3
2012-04-20 1
mercredi 15 mai 13
82. Date Histogram Facet
Date Hashtag
2012-04-18 1
2012-04-18 5
h 2012-04-18 2
2012-04-18 2
2012-04-18 6
h 2012-04-19 3
2012-04-19 3
2012-04-19 7
h 2012-04-20 4
mercredi 15 mai 13
83. Date Histogram Facet
Date Hashtag
2012-04-18 1
2012-04-18 5
h 2012-04-18 2
2012-04-18 2
2012-04-18 6
h 2012-04-19 3
2012-04-19 3
2012-04-19 7
h 2012-04-20 4
"facets" : {
"perday" : {
"date_histogram" : {
"field" : "date",
"interval" : "day"
}
}
}
mercredi 15 mai 13
95. Analyse temps-réel
• Faire un matchAll sur l'ensemble des données
• Actualiser toutes les x secondes
• Indexer en même temps les nouvelles données
Term
Date histogram
mercredi 15 mai 13
112. Lexique
• Nœud (node) : Une instance d'Elasticsearch
(~ machine ?)
mercredi 15 mai 13
113. Lexique
• Nœud (node) : Une instance d'Elasticsearch
(~ machine ?)
• Cluster : Un ensemble de nœuds
mercredi 15 mai 13
114. Lexique
• Nœud (node) : Une instance d'Elasticsearch
(~ machine ?)
• Cluster : Un ensemble de nœuds
• Partition (shard) : permet de découper un
index en plusieurs parties pour y distribuer
les documents
mercredi 15 mai 13
115. Lexique
• Nœud (node) : Une instance d'Elasticsearch
(~ machine ?)
• Cluster : Un ensemble de nœuds
• Partition (shard) : permet de découper un
index en plusieurs parties pour y distribuer
les documents
• Réplication (replica) : recopie d’une
partition en une ou plusieurs copies dans
l'ensemble du cluster
mercredi 15 mai 13
126. Réallocation dynamique
Cluster
Nœud 3Nœud 1 Nœud 2
Shard 1
Shard 0
Nœud 4
Shard 1
Le tuning, c'est trouver le bon équilibre entre le
nombre de nodes, shards et replicas !
Shard 0
mercredi 15 mai 13
127. Indexons un document
$ curl -XPUT localhost:9200/twitter/tweet/1 -d '
{
"text": "Bienvenue à la conférence #elasticsearch pour #JUG",
"created_at": "2012-04-06T20:45:36.000Z",
"source": "Twitter for iPad",
...
}'
Cluster
Nœud 3Nœud 1 Nœud 2
Shard 1
Shard 0 Shard 0
Nœud 4
Shard 1
Client
CURL
Doc
1
mercredi 15 mai 13
128. Indexons un document
$ curl -XPUT localhost:9200/twitter/tweet/1 -d '
{
"text": "Bienvenue à la conférence #elasticsearch pour #JUG",
"created_at": "2012-04-06T20:45:36.000Z",
"source": "Twitter for iPad",
...
}'
Cluster
Nœud 3Nœud 1 Nœud 2
Shard 1
Shard 0 Shard 0
Nœud 4
Shard 1
Client
CURL
Doc
1
mercredi 15 mai 13
129. Indexons un document
$ curl -XPUT localhost:9200/twitter/tweet/1 -d '
{
"text": "Bienvenue à la conférence #elasticsearch pour #JUG",
"created_at": "2012-04-06T20:45:36.000Z",
"source": "Twitter for iPad",
...
}'
Cluster
Nœud 3Nœud 1 Nœud 2
Shard 1
Shard 0 Shard 0
Nœud 4
Shard 1
Client
CURL
Doc
1
Doc
1
mercredi 15 mai 13
130. Indexons un document
$ curl -XPUT localhost:9200/twitter/tweet/1 -d '
{
"text": "Bienvenue à la conférence #elasticsearch pour #JUG",
"created_at": "2012-04-06T20:45:36.000Z",
"source": "Twitter for iPad",
...
}'
Cluster
Nœud 3Nœud 1 Nœud 2
Shard 1
Shard 0 Shard 0
Nœud 4
Shard 1
Client
CURL
Doc
1
Doc
1
mercredi 15 mai 13
131. Indexons un 2ème
document
$ curl -XPUT localhost:9200/twitter/tweet/2 -d '
{
"text": "Je fais du bruit pour #elasticsearch à #JUG",
"created_at": "2012-04-06T21:12:52.000Z",
"source": "Twitter for iPad",
...
}'
Cluster
Nœud 3Nœud 1 Nœud 2
Shard 1
Shard 0 Shard 0
Nœud 4
Shard 1
Client
CURL
Doc
1
Doc
1
Doc
2
mercredi 15 mai 13
132. Indexons un 2ème
document
$ curl -XPUT localhost:9200/twitter/tweet/2 -d '
{
"text": "Je fais du bruit pour #elasticsearch à #JUG",
"created_at": "2012-04-06T21:12:52.000Z",
"source": "Twitter for iPad",
...
}'
Cluster
Nœud 3Nœud 1 Nœud 2
Shard 1
Shard 0 Shard 0
Nœud 4
Shard 1
Client
CURL
Doc
1
Doc
1
Doc
2
mercredi 15 mai 13
133. Indexons un 2ème
document
$ curl -XPUT localhost:9200/twitter/tweet/2 -d '
{
"text": "Je fais du bruit pour #elasticsearch à #JUG",
"created_at": "2012-04-06T21:12:52.000Z",
"source": "Twitter for iPad",
...
}'
Cluster
Nœud 3Nœud 1 Nœud 2
Shard 1
Shard 0 Shard 0
Nœud 4
Shard 1
Client
CURL
Doc
1
Doc
1
Doc
2
mercredi 15 mai 13
134. Indexons un 2ème
document
$ curl -XPUT localhost:9200/twitter/tweet/2 -d '
{
"text": "Je fais du bruit pour #elasticsearch à #JUG",
"created_at": "2012-04-06T21:12:52.000Z",
"source": "Twitter for iPad",
...
}'
Cluster
Nœud 3Nœud 1 Nœud 2
Shard 1
Shard 0 Shard 0
Nœud 4
Shard 1
Client
CURL
Doc
1
Doc
1
Doc
2
Doc
2
mercredi 15 mai 13
135. Indexons un 2ème
document
$ curl -XPUT localhost:9200/twitter/tweet/2 -d '
{
"text": "Je fais du bruit pour #elasticsearch à #JUG",
"created_at": "2012-04-06T21:12:52.000Z",
"source": "Twitter for iPad",
...
}'
Cluster
Nœud 3Nœud 1 Nœud 2
Shard 1
Shard 0 Shard 0
Nœud 4
Shard 1
Client
CURL
Doc
1
Doc
1
Doc
2
Doc
2
mercredi 15 mai 13
150. Usage courant d’un
moteur de recherche
• J’indexe un document
• Je cherche de temps en temps si un
document m’intéresse
• Avec de la chance, il sera bien placé au
niveau pertinence dans les résultats.
Sinon, il passe inaperçu !
mercredi 15 mai 13
151. La recherche inversée
• Enregistrer ses critères de recherche
• A chaque document indexé, on
récupère la liste des recherches qui
correspondent
• On a un « listener » sur le moteur
d’indexation : le percolator
mercredi 15 mai 13
158. The quick brown fox
jumped over the lazy Dog
The lazy dog...
mercredi 15 mai 13
159. The quick brown fox
jumped over the lazy dog
The quick brown fox
jumped over the lazy Dog
The lazy dog...
mercredi 15 mai 13
160. Analyseur standard
$ curl -XPOST 'localhost:9200/test/_analyze?analyzer=standard&pretty=1' -d
'The quick brown fox jumped over the lazy Dog'
mercredi 15 mai 13
162. Analyseur whitespace
$ curl -XPOST 'localhost:9200/test/_analyze?analyzer=whitespace&pretty=1' -d
'The quick brown fox jumped over the lazy Dog'
mercredi 15 mai 13
165. Un tokenizer
• Découpe une chaine en « mots » et
transforme :
• whitespace tokenizer :
"the dog!" -> "the", "dog!"
• standard tokenizer :
"the dog!" -> "the", "dog"
mercredi 15 mai 13
177. Rejoignez le mouvement !
@ElasticsearchFR
Questions ?
Slides sur http://fr.slideshare.net/dadoonet Sources sur https://github.com/elasticsearchfr/talks
www.elasticsearch.fr
Posez aussi vos questions sur elasticsearch-fr@googlegroups.com
in
progress
Prochaines rencontres sur http://www.meetup.com/elasticsearchfr/
mercredi 15 mai 13