Elasticsearch par David Pilato [FR]

  • View
    2.388

  • Download
    4

Embed Size (px)

DESCRIPTION

Elasticsearch, le moteur de recherche élastique pour tous.

Text of Elasticsearch par David Pilato [FR]

  • 1. Elasticsearch. Le moteur de recherche lastique pour tous David Pilato, Elasticsearch.com, Paris lundi 23 septembre 13

2. Qui ? $ curl http://localhost:9200/talk/speaker/dpilato { "nom" : "David Pilato", "jobs" : [ { "boite" : "SRA Europe (SSII)", "mission" : "bon tout faire", "date" : "1995" }, { "boite" : "SFR", "mission" : "touche tout", "date" : "1997" }, { "boite" : "e-Brands / Vivendi", "mission" : "chef de projets", "date": "2000" }, { "boite" : "DGDDI (douane)", "mission" : "mouton 5 pattes", "date" : "2005" }, { "boite" : "IDEO Technologies", "mission" : "directeur technique", "date" : "2012" }, { "boite" : "Elasticsearch.com", "mission" : "technical advocate", "date" : "2013" } ], "passions" : [ "famille", "job", "deejay" ], "blog" : "http://dev.david.pilato.fr/", "twitter" : [ "@dadoonet", "@elasticsearchfr", "@scrutmydocs" ], "email" : "david@pilato.fr" } lundi 23 septembre 13 3. Qui ? $ curl http://localhost:9200/talk/speaker/dpilato { "nom" : "David Pilato", "jobs" : [ { "boite" : "SRA Europe (SSII)", "mission" : "bon tout faire", "date" : "1995" }, { "boite" : "SFR", "mission" : "touche tout", "date" : "1997" }, { "boite" : "e-Brands / Vivendi", "mission" : "chef de projets", "date": "2000" }, { "boite" : "DGDDI (douane)", "mission" : "mouton 5 pattes", "date" : "2005" }, { "boite" : "IDEO Technologies", "mission" : "directeur technique", "date" : "2012" }, { "boite" : "Elasticsearch.com", "mission" : "technical advocate", "date" : "2013" } ], "passions" : [ "famille", "job", "deejay" ], "blog" : "http://dev.david.pilato.fr/", "twitter" : [ "@dadoonet", "@elasticsearchfr", "@scrutmydocs" ], "email" : "david@pilato.fr" } lundi 23 septembre 13 4. ScrutMyDocs.org lundi 23 septembre 13 5. Elasticsearch.com Cre en 2012 par ses auteurs Formation (publique et intra) Support de dveloppement Support de production (3 niveaux de SLA) lundi 23 septembre 13 6. Pour la dmo Faites du bruit sur Twitter avec le hashtag #elasticsearch lundi 23 septembre 13 7. SQL Classique Cherche moi un document de dcembre 2011 portant sur la france et contenant produit et david En SQL : lundi 23 septembre 13 8. SQL Classique Cherche moi un document de dcembre 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%'; lundi 23 septembre 13 9. Au nal, on obtient lundi 23 septembre 13 10. Moteur de recherche ? un moteur dindexation de documents lundi 23 septembre 13 11. Moteur de recherche ? un moteur dindexation de documents lundi 23 septembre 13 12. Moteur de recherche ? un moteur dindexation de documents un moteur de recherche dans les index lundi 23 septembre 13 13. Elasticsearch lundi 23 septembre 13 14. ElasticsearchYour Data, your Search ! lundi 23 septembre 13 15. Elasticsearch Cest un moteur ! NoSQL orient document Apache Lucene HTTP / REST / JSON Distribu, Scalable, Cloud ready Apache2 License lundi 23 septembre 13 16. Points cls lundi 23 septembre 13 17. Points cls Simple: start in 5 minutes 30 seconds lundi 23 septembre 13 18. Points cls Simple: start in 5 minutes 30 seconds Efcace: just start new nodes! lundi 23 septembre 13 19. Points cls Simple: start in 5 minutes 30 seconds Efcace: just start new nodes! Puissant: 20-300ms! lundi 23 septembre 13 20. Points cls Simple: start in 5 minutes 30 seconds Efcace: just start new nodes! Puissant: 20-300ms! Complet: built-in + plugins lundi 23 septembre 13 21. Penser document ! Document : Un objet reprsentant les donnes (au sens NoSQL). Penser "recherche", c'est oublier le SGBDR et penser "Documents" Type : Regroupe des documents de mme type Index : Espace logique de stockage des documents dont les types sont fonctionnellement communs lundi 23 septembre 13 22. Penser document ! Document : Un objet reprsentant les donnes (au sens NoSQL). Penser "recherche", c'est oublier le SGBDR et penser "Documents" Type : Regroupe des documents de mme type Index : Espace logique de stockage des documents dont les types sont fonctionnellement communs { "text": "Bienvenue la confrence #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 !" } } lundi 23 septembre 13 23. Penser document ! Document : Un objet reprsentant les donnes (au sens NoSQL). Penser "recherche", c'est oublier le SGBDR et penser "Documents" Type : Regroupe des documents de mme type { "text": "Bienvenue la confrence #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 !" } } lundi 23 septembre 13 24. Penser document ! Document : Un objet reprsentant les donnes (au sens NoSQL). Penser "recherche", c'est oublier le SGBDR et penser "Documents" Type : Regroupe des documents de mme type Index : Espace logique de stockage des documents dont les types sont fonctionnellement communs { "text": "Bienvenue la confrence #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 !" } } lundi 23 septembre 13 25. Interagir avec Elasticsearch lundi 23 septembre 13 26. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Mthodes HTTP : GET, POST, PUT, DELETE, HEAD lundi 23 septembre 13 27. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Mthodes HTTP : GET, POST, PUT, DELETE, HEAD Documents curl -XPUT http://localhost:9200/twitter/tweet/1 lundi 23 septembre 13 28. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Mthodes HTTP : GET, POST, PUT, DELETE, HEAD Documents curl -XPUT http://localhost:9200/twitter/tweet/1 curl -XGET http://localhost:9200/twitter/tweet/1 lundi 23 septembre 13 29. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Mthodes HTTP : GET, POST, PUT, DELETE, HEAD Documents curl -XPUT http://localhost:9200/twitter/tweet/1 curl -XGET http://localhost:9200/twitter/tweet/1 curl -XDELETE http://localhost:9200/twitter/tweet/1 lundi 23 septembre 13 30. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Mthodes HTTP : GET, POST, PUT, DELETE, HEAD Documents curl -XPUT http://localhost:9200/twitter/tweet/1 curl -XGET http://localhost:9200/twitter/tweet/1 curl -XDELETE http://localhost:9200/twitter/tweet/1 Recherche curl -XPOST http://localhost:9200/twitter/tweet/_search lundi 23 septembre 13 31. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Mthodes HTTP : GET, POST, PUT, DELETE, HEAD Documents curl -XPUT http://localhost:9200/twitter/tweet/1 curl -XGET http://localhost:9200/twitter/tweet/1 curl -XDELETE http://localhost:9200/twitter/tweet/1 Recherche curl -XPOST http://localhost:9200/twitter/tweet/_search curl -XPOST http://localhost:9200/twitter/_search lundi 23 septembre 13 32. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Mthodes HTTP : GET, POST, PUT, DELETE, HEAD Documents curl -XPUT http://localhost:9200/twitter/tweet/1 curl -XGET http://localhost:9200/twitter/tweet/1 curl -XDELETE http://localhost:9200/twitter/tweet/1 Recherche curl -XPOST http://localhost:9200/twitter/tweet/_search curl -XPOST http://localhost:9200/twitter/_search curl -XPOST http://localhost:9200/_search lundi 23 septembre 13 33. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Mthodes HTTP : GET, POST, PUT, DELETE, HEAD Documents curl -XPUT http://localhost:9200/twitter/tweet/1 curl -XGET http://localhost:9200/twitter/tweet/1 curl -XDELETE http://localhost:9200/twitter/tweet/1 Recherche curl -XPOST http://localhost:9200/twitter/tweet/_search curl -XPOST http://localhost:9200/twitter/_search curl -XPOST http://localhost:9200/_search Meta-donnes curl -XGET http://localhost:9200/twitter/_status lundi 23 septembre 13 34. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Mthodes HTTP : GET, POST, PUT, DELETE, HEAD Documents curl -XPUT http://localhost:9200/twitter/tweet/1 curl -XGET http://localhost:9200/twitter/tweet/1 curl -XDELETE http://localhost:9200/twitter/tweet/1 Recherche curl -XPOST http://localhost:9200/twitter/tweet/_search curl -XPOST http://localhost:9200/twitter/_search curl -XPOST http://localhost:9200/_search Meta-donnes curl -XGET http://localhost:920