• Télécharger
Paris data geek - Elasticsearch
Prochain SlideShare
Chargement dans... 5
×

Vous aimez ? Partagez donc ce contenu avec votre réseau

Partager

Paris data geek - Elasticsearch

  • 1,136 vues
Transféré le

30 mn talk for Paris Data Geek le 08/02/2013

30 mn talk for Paris Data Geek le 08/02/2013

Plus dans : Technologies
  • Full Name Full Name Comment goes here.
    Êtes-vous sûr de vouloir
    Votre message apparaîtra ici
    Soyez le premier à commenter
Aucun téléchargement

Vues

Total des vues
1,136
Sur Slideshare
1,133
À partir des ajouts
3
Nombre d'ajouts
2

Actions

Partages
Téléchargements
0
Commentaires
0
J'aime
2

Ajouts 3

https://twitter.com 2
http://www.lavajug.org 1

Signaler un contenu

Signalé comme inapproprié Signaler comme inapproprié
Signaler comme inapproprié

Indiquez la raison pour laquelle vous avez signalé cette présentation comme n'étant pas appropriée.

Annuler
    No notes for slide

Transcript

  • 1. Paris Data Geek Fév 2013 Elasticsearch. Le moteur de recherche élastique pour tous David Pilato, Elasticsearch.com, Parislundi 11 février 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 11 février 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 11 février 13
  • 4. ScrutMyDocs.orglundi 11 février 13
  • 5. SQL Classique Cherche moi un document de décembre 2011 portant sur la france et contenant produit et david En SQL :lundi 11 février 13
  • 6. 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%;lundi 11 février 13
  • 7. Au final, on obtientlundi 11 février 13
  • 8. Un moteur de recherche • Un moteur de recherche est composé de : • un moteur d’indexation de documents • un moteur de recherche sur les index • De fait, un moteur de recherche est énormément plus rapide qu’une base de données pour faire des recherches : c’est son métier !lundi 11 février 13
  • 9. L’indexation, c’est quoi en fait ?lundi 11 février 13
  • 10. Elasticsearchlundi 11 février 13
  • 11. Elasticsearch Your Data, your Search !lundi 11 février 13
  • 12. Elasticsearch • Moteur de recherche pour la génération NoSQL • Basé sur le standard Apache Lucene • Masque la complexité Java/Lucene à l’aide de services standards HTTP / RESTful / JSON • Utilisable à partir de n’importe quelle technologie • Ajoute la couche cloud manquante à Lucene • C’est un moteur, pas une interface graphique !lundi 11 février 13
  • 13. Indexer $ 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", "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.r nAt this time, enjoying NoSQL world : CouchDB, ElasticSearch.rnDeeJay 4 times a year, just for fun !" } }lundi 11 février 13
  • 14. Indexer $ 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", "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.r nAt this time, enjoying NoSQL world : CouchDB, ElasticSearch.rnDeeJay 4 times a year, just for fun !" } } { "ok":true, "_index":"twitter", "_type":"tweet", "_id":"1" }lundi 11 février 13
  • 15. Chercher $ curl localhost:9200/twitter/tweet/_search?q=elasticsearchlundi 11 février 13
  • 16. Chercher $ curl localhost:9200/twitter/tweet/_search?q=elasticsearch { "took" : 24, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 1, "max_score" : 0.227, "hits" : [ { "_index" : "twitter", "_type" : "tweet", "_id" : "1", "_score" : 0.227, "_source" : { "text": "Bienvenue à la conférence #elasticsearch pour #JUG", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", […] } } ] } }lundi 11 février 13
  • 17. Chercher $ curl localhost:9200/twitter/tweet/_search?q=elasticsearch { "took" : 24, Nb de "timed_out" : false, documents "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 1, "max_score" : 0.227, "hits" : [ { "_index" : "twitter", "_type" : "tweet", "_id" : "1", "_score" : 0.227, "_source" : { "text": "Bienvenue à la conférence #elasticsearch pour #JUG", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", […] } } ] } }lundi 11 février 13
  • 18. Chercher $ curl localhost:9200/twitter/tweet/_search?q=elasticsearch { "took" : 24, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 1, "max_score" : 0.227, "hits" : [ { Coordonnées "_index" : "twitter", "_type" : "tweet", "_id" : "1", "_score" : 0.227, "_source" : { "text": "Bienvenue à la conférence #elasticsearch pour #JUG", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", […] } } ] } }lundi 11 février 13
  • 19. Chercher $ curl localhost:9200/twitter/tweet/_search?q=elasticsearch { "took" : 24, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 1, "max_score" : 0.227, "hits" : [ { "_index" : "twitter", "_type" : "tweet", "_id" : "1", "_score" : 0.227, "_source" : { "text": "Bienvenue à la conférence #elasticsearch pour #JUG", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", […] } Pertinence } ] } }lundi 11 février 13
  • 20. Chercher $ curl localhost:9200/twitter/tweet/_search?q=elasticsearch { "took" : 24, "timed_out" : false, "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { "total" : 1, Document "max_score" : 0.227, "hits" : [ { source "_index" : "twitter", "_type" : "tweet", "_id" : "1", "_score" : 0.227, "_source" : { "text": "Bienvenue à la conférence #elasticsearch pour #JUG", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", […] } } ] } }lundi 11 février 13
  • 21. Query DSL • Requêtes précises : plutôt que de chercher « à la google », on peut utiliser des critères précis :lundi 11 février 13
  • 22. Query DSL • Requêtes précises : plutôt que de chercher « à la google », on peut utiliser des critères précis : $ curl -XPOST localhost:9200/twitter/tweet/_search -d ’{ "bool" : { "must" : { "term" : { "user" : "kimchy" } }, "must_not" : { "range" : { "age" : { "from" : 10, "to" : 20 } } }, "should" : [ { "term" : { "tag" : "wow" } },{ "match" : { "tag" : "elasticsearch is cool" } } ] } }’lundi 11 février 13
  • 23. 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 !)lundi 11 février 13
  • 24. Des tweets ID Username Date Hashtag 1 dadoonet 2012-04-18 1 2 talk 2012-04-18 5 3 elasticsearch 2012-04-18 2 4 dadoonet 2012-04-18 2 5 talk 2012-04-18 6 6 elasticsearch 2012-04-19 3 7 dadoonet 2012-04-19 3 8 talk 2012-04-19 7 9 elasticsearch 2012-04-20 4lundi 11 février 13
  • 25. Term FacetD Username Date Hashtag1 dadoonet 2012-04-18 12 talktalk 2012-04-18 53 elasticsearch 2012-04-18 24 dadoonet 2012-04-18 25 talk 2012-04-18 66 elasticsearch 2012-04-19 37 dadoonet 2012-04-19 38 talk 2012-04-19 79 elasticsearch 2012-04-20 4 lundi 11 février 13
  • 26. Term FacetD Username Date Hashtag1 dadoonet 2012-04-18 12 talktalk 2012-04-18 53 elasticsearch 2012-04-18Username 2 Count4 dadoonet 2012-04-18dadoonet 2 35 talk 2012-04-18 talk 6 36 elasticsearch 2012-04-19 elasticsearch 3 37 dadoonet 2012-04-19 38 talk 2012-04-19 79 elasticsearch 2012-04-20 4 lundi 11 février 13
  • 27. Term FacetD Username Date Hashtag1 dadoonet 2012-04-18 12 talk 2012-04-18 53 elasticsearch 2012-04-18 24 dadoonet 2012-04-18 25 talk 2012-04-18 66 elasticsearch 2012-04-19 37 dadoonet 2012-04-19 38 talk 2012-04-19 79 elasticsearch 2012-04-20 4 lundi 11 février 13
  • 28. Term FacetD Username Date Hashtag1 dadoonet 2012-04-18 "facets" : { 1 "users" : { "terms" : {"field" : "username"} } }2 talk 2012-04-18 53 elasticsearch 2012-04-18 24 dadoonet 2012-04-18 25 talk 2012-04-18 66 elasticsearch 2012-04-19 37 dadoonet 2012-04-19 38 talk 2012-04-19 79 elasticsearch 2012-04-20 4 lundi 11 février 13
  • 29. Term FacetD Username Date Hashtag1 dadoonet 2012-04-18 "facets" : { 1 "users" : { "terms" : {"field" : "username"} } }2 talk 2012-04-18 5 "facets" : {3 elasticsearch 2012-04-18 "users" : { 2 "_type" : "terms",4 dadoonet 2012-04-18"missing" : 0,2 "total": 9,5 talk 2012-04-18"other": 0, 6 "terms" : [6 elasticsearch 2012-04-19 { "term" : "dadoonet", "count" },3 }, 3 { "term" : "talk", "count" : 3 : { "term" : "elasticsearch", "count" : 3 }7 dadoonet 2012-04-19] 3 }8 talk 2012-04-19 } 79 elasticsearch 2012-04-20 4 lundi 11 février 13
  • 30. Date Histogram Facet Date Hashtag 2012-04-18 1 2012-04-18 5h 2012-04-18 2 2012-04-18 2 2012-04-18 6h 2012-04-19 3 2012-04-19 3 2012-04-19 7h 2012-04-20 4lundi 11 février 13
  • 31. Date Histogram Facet Date Hashtag 2012-04-18 1 Par mois 2012-04-18 5 Date Counth 2012-04-18 2 2012-04 9 2012-04-18 2 2012-04-18 6h 2012-04-19 3 2012-04-19 3 2012-04-19 7h 2012-04-20 4lundi 11 février 13
  • 32. Date Histogram Facet Date Hashtag 2012-04-18 1 Par mois 2012-04-18 5 Date Counth 2012-04-18 2 2012-04 9 2012-04-18 2 2012-04-18 6 Par jourh 2012-04-19 3 Date Count 2012-04-19 3 2012-04-18 5 2012-04-19 7 2012-04-19 3h 2012-04-20 4 2012-04-20 1lundi 11 février 13
  • 33. Date Histogram Facet Date Hashtag 2012-04-18 1 2012-04-18 5h 2012-04-18 2 2012-04-18 2 2012-04-18 6h 2012-04-19 3 2012-04-19 3 2012-04-19 7h 2012-04-20 4lundi 11 février 13
  • 34. Date Histogram Facet Date Hashtag "facets" : { 2012-04-18 1 "perday" : { "date_histogram" : { 2012-04-18 5 "field" : "date", "interval" : "day" }h 2012-04-18 2 } } 2012-04-18 2 2012-04-18 6h 2012-04-19 3 2012-04-19 3 2012-04-19 7h 2012-04-20 4lundi 11 février 13
  • 35. Date Histogram Facet Date Hashtag "facets" : { 2012-04-18 1 "perday" : { "date_histogram" : { 2012-04-18 5 "field" : "date", "interval" : "day" }h 2012-04-18 2 } } 2012-04-18 2 "facets" : { 2012-04-18 6 "perday" : { "_type" : "date_histogram",h 2012-04-19 3 "entries": [ { "time": 1334700000000, "count": 5 }, 2012-04-19 3 { "time": 1334786400000, "count": 3 }, { "time": 1334872800000, "count": 1 } 2012-04-19 7 } ] }h 2012-04-20 4lundi 11 février 13
  • 36. Range Facet Hashtag 1 5 2 2 6 3 3 7 4lundi 11 février 13
  • 37. Range Facet Hashtag 1 5 2 Hashtag Count Min Max Moy Total 2 x<3 3 1 2 1.667 5 6 3 <= x < 5 3 3 4 3.333 10 3 x >= 5 3 5 7 6 18 3 7 4lundi 11 février 13
  • 38. Range Facet Hashtag 1 5 2 2 6 3 3 7 4lundi 11 février 13
  • 39. Range Facet "facets" : { "hashtags" : { "range" : { "field" : "hashtag", "ranges" : [ { "to" : 3 }, Hashtag { "from" : 3, "to" : 5 }, { "from" : 5 } ] } } } 1 5 2 2 6 3 3 7 4lundi 11 février 13
  • 40. Range Facet "facets" : { "hashtags" : { "range" : { "field" : "hashtag", "ranges" : [ { "to" : 3 }, Hashtag { "from" : 3, "to" : 5 }, { "from" : 5 } ] } } } 1 "facets" : { 5 "hashtags" : { "_type" : "range", 2 "ranges" : [ { "to": 3, 2 "count": 3, "min": 1, "max": 2, 6 "total": 5, "mean": 1.667 }, { "from":3, "to" : 5, 3 "count": 3, "min": 3, "max": 4, 3 "total": 10, "mean": 3.333 },{ 7 "from":5, "count": 3, 4 "min": 5, "max": 7, "total": 18, "mean": 6 } ] } }lundi 11 février 13
  • 41. Site marchandlundi 11 février 13
  • 42. Site marchandlundi 11 février 13
  • 43. Site marchandlundi 11 février 13
  • 44. Site marchandlundi 11 février 13
  • 45. Site marchand Ranges Term Term Rangeslundi 11 février 13
  • 46. Analyse temps-réel • Faire un matchAll sur lensemble des données • Actualiser toutes les x secondes • Indexer en même temps les nouvelles données Date histogram Termlundi 11 février 13
  • 47. Facettes Cartographiqueslundi 11 février 13
  • 48. Reprenons notre formulairelundi 11 février 13
  • 49. Reprenons notre formulaire Recherche Full Textlundi 11 février 13
  • 50. Reprenons notre formulairelundi 11 février 13
  • 51. Reprenons notre formulairelundi 11 février 13
  • 52. Démonstration http://onemilliontweetmap.com/ http://www.francetvinfo.fr/en-direct/ http://localhost:9200/_plugin/demo/lundi 11 février 13
  • 53. Architecture Un peu plus de technique : partitions / réplications / scalabilitélundi 11 février 13
  • 54. Lexiquelundi 11 février 13
  • 55. Lexique • Nœud (node) : Une instance dElasticsearch (~ machine ?)lundi 11 février 13
  • 56. Lexique • Nœud (node) : Une instance dElasticsearch (~ machine ?) • Cluster : Un ensemble de nœudslundi 11 février 13
  • 57. Lexique • Nœud (node) : Une instance dElasticsearch (~ machine ?) • Cluster : Un ensemble de nœuds • Partition (shard) : permet de découper un index en plusieurs parties pour y distribuer les documentslundi 11 février 13
  • 58. Lexique • Nœud (node) : Une instance dElasticsearch (~ 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 lensemble du clusterlundi 11 février 13
  • 59. Créons un index Cluster Nœud 1 Client CURLlundi 11 février 13
  • 60. Créons un index $ curl -XPUT localhost:9200/twitter -d { Cluster "index" : { Nœud 1 "number_of_shards" : 2, "number_of_replicas" : 1 Shard 0 } Shard 1 } réplication non respectée Client CURLlundi 11 février 13
  • 61. Créons un index $ curl -XPUT localhost:9200/twitter -d { Cluster "index" : { Nœud 1 Nœud 2 "number_of_shards" : 2, "number_of_replicas" : 1 Shard 0 Shard 0 } } Shard 1 Shard 1 réplication respectée Client CURLlundi 11 février 13
  • 62. Réallocation dynamique Cluster Nœud 1 Nœud 2 Shard 0 Shard 0 Shard 1 Shard 1lundi 11 février 13
  • 63. Réallocation dynamique Cluster Nœud 1 Nœud 2 Nœud 3 Shard 0 Shard 0 Shard 1 Shard 1lundi 11 février 13
  • 64. Réallocation dynamique Cluster Nœud 1 Nœud 2 Nœud 3 Shard 0 Shard 0 Shard 0 Shard 1 Shard 1lundi 11 février 13
  • 65. Réallocation dynamique Cluster Nœud 1 Nœud 2 Nœud 3 Shard 0 Shard 0 Shard 1 Shard 1lundi 11 février 13
  • 66. Réallocation dynamique Cluster Nœud 1 Nœud 2 Nœud 3 Shard 0 Shard 0 Shard 1 Shard 1lundi 11 février 13
  • 67. Réallocation dynamique Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Shard 0 Shard 0 Shard 1 Shard 1lundi 11 février 13
  • 68. Réallocation dynamique Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Shard 0 Shard 0 Shard 1 Shard 1 Shard 1lundi 11 février 13
  • 69. Réallocation dynamique Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Shard 0 Shard 0 Shard 1 Shard 1 Le tuning, cest trouver le bon équilibre entre le nombre de nodes, shards et replicas !lundi 11 février 13
  • 70. Indexons un document Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Shard 0 Shard 0 Shard 1 Shard 1 Doc 1 Client $ curl -XPUT localhost:9200/twitter/tweet/1 -d CURL { "text": "Bienvenue à la conférence #elasticsearch pour #JUG", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", ... }lundi 11 février 13
  • 71. Indexons un document Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Shard 0 1 Shard 0 Shard 1 Shard 1 Client $ curl -XPUT localhost:9200/twitter/tweet/1 -d CURL { "text": "Bienvenue à la conférence #elasticsearch pour #JUG", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", ... }lundi 11 février 13
  • 72. Indexons un document Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Shard 0 1 Shard 0 Shard 1 Shard 1 Client $ curl -XPUT localhost:9200/twitter/tweet/1 -d CURL { "text": "Bienvenue à la conférence #elasticsearch pour #JUG", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", ... }lundi 11 février 13
  • 73. Indexons un document Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Doc Shard 0 1 Shard 0 1 Shard 1 Shard 1 Client $ curl -XPUT localhost:9200/twitter/tweet/1 -d CURL { "text": "Bienvenue à la conférence #elasticsearch pour #JUG", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", ... }lundi 11 février 13
  • 74. Indexons un 2ème document Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Doc Shard 0 1 Shard 0 1 Shard 1 Shard 1 Doc 2 Client $ curl -XPUT localhost:9200/twitter/tweet/2 -d CURL { "text": "Je fais du bruit pour #elasticsearch à #JUG", "created_at": "2012-04-06T21:12:52.000Z", "source": "Twitter for iPad", ... }lundi 11 février 13
  • 75. Indexons un 2ème document Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Doc Shard 0 1 Shard 0 1 Shard 1 Shard 1 Doc 2 Client $ curl -XPUT localhost:9200/twitter/tweet/2 -d CURL { "text": "Je fais du bruit pour #elasticsearch à #JUG", "created_at": "2012-04-06T21:12:52.000Z", "source": "Twitter for iPad", ... }lundi 11 février 13
  • 76. Indexons un 2ème document Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Doc Shard 0 1 Shard 0 1 Shard 1 Doc Shard 1 2 Client $ curl -XPUT localhost:9200/twitter/tweet/2 -d CURL { "text": "Je fais du bruit pour #elasticsearch à #JUG", "created_at": "2012-04-06T21:12:52.000Z", "source": "Twitter for iPad", ... }lundi 11 février 13
  • 77. Indexons un 2ème document Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Doc Shard 0 1 Shard 0 1 Shard 1 Doc Shard 1 2 Client $ curl -XPUT localhost:9200/twitter/tweet/2 -d CURL { "text": "Je fais du bruit pour #elasticsearch à #JUG", "created_at": "2012-04-06T21:12:52.000Z", "source": "Twitter for iPad", ... }lundi 11 février 13
  • 78. Indexons un 2ème document Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Doc Shard 0 1 Shard 0 1 Doc Doc Shard 1 Shard 1 2 2 Client $ curl -XPUT localhost:9200/twitter/tweet/2 -d CURL { "text": "Je fais du bruit pour #elasticsearch à #JUG", "created_at": "2012-04-06T21:12:52.000Z", "source": "Twitter for iPad", ... }lundi 11 février 13
  • 79. Cherchons ! Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Doc Shard 0 1 Shard 0 1 Doc Doc Shard 1 Shard 1 2 2 Client $ curl localhost:9200/twitter/_search?q=elasticsearch CURLlundi 11 février 13
  • 80. Cherchons ! Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Doc Shard 0 1 Shard 0 1 Doc Doc Shard 1 Shard 1 2 2 Client $ curl localhost:9200/twitter/_search?q=elasticsearch CURLlundi 11 février 13
  • 81. Cherchons ! Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Shard 0 Shard 0 1 Doc Shard 1 Shard 1 Doc 2 Doc 1 2 Client $ curl localhost:9200/twitter/_search?q=elasticsearch CURLlundi 11 février 13
  • 82. Cherchons ! Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Shard 0 Shard 0 1 Doc Shard 1 Shard 1 2 Doc Doc 2 1 Client $ curl localhost:9200/twitter/_search?q=elasticsearch CURLlundi 11 février 13
  • 83. Cherchons ! { Cluster "took" : 24, Nœud 1 "timed_out" : false,Nœud 3 Nœud 2 Nœud 4 "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, Doc Shard 0 "hits" : { Shard 0 1 "total" : 2, "max_score" : 0.227, Doc Shard 1 "hits" : [ { Shard 1 2 "_index" : "twitter", "_type" : "tweet", "_id" : "1", "_score" : 0.227, "_source" : { ... } Doc }, { Doc 2 "_index" : "twitter", 1 Client "_type" : "tweet", $ curl localhost:9200/twitter/_search?q=elasticsearch CURL "_id" : "2", "_score" : 0.152, "_source" : { ... } } ] }lundi 11 février 13
  • 84. Cherchons encore ! Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Doc Shard 0 1 Shard 0 1 Doc Doc Shard 1 Shard 1 2 2 Client $ curl localhost:9200/twitter/_search?q=elasticsearch CURLlundi 11 février 13
  • 85. Cherchons encore ! Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Doc Shard 0 1 Shard 0 1 Doc Doc Shard 1 Shard 1 2 2 Client $ curl localhost:9200/twitter/_search?q=elasticsearch CURLlundi 11 février 13
  • 86. Cherchons encore ! Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Doc Shard 0 1 Shard 0 Doc 1 Shard 1 Doc Doc Shard 1 2 2 Client $ curl localhost:9200/twitter/_search?q=elasticsearch CURLlundi 11 février 13
  • 87. Cherchons encore ! Cluster Nœud 1 Nœud 2 Nœud 3 Doc Shard 0 1 Shard 0 Doc 1 Shard 1 Doc 2 Client $ curl localhost:9200/twitter/_search?q=elasticsearch CURLlundi 11 février 13
  • 88. Cherchons encore ! Cluster Nœud 1 Nœud 2 Nœud 3 Doc Shard 0 1 Shard 0 Doc 1 Shard 1 Doc 2 Client $ curl localhost:9200/twitter/_search?q=elasticsearch CURLlundi 11 février 13
  • 89. Cherchons encore ! Cluster Nœud 1 Nœud 2 Nœud 3 Doc Shard 0 1 Shard 0 Shard 1 Doc Doc 1 2 Client $ curl localhost:9200/twitter/_search?q=elasticsearch CURLlundi 11 février 13
  • 90. Cherchons encore ! Cluster Nœud 1 Nœud 2 Nœud 3 Doc Shard 0 1 Shard 0 Shard 1 Doc Doc 2 1 Client $ curl localhost:9200/twitter/_search?q=elasticsearch CURLlundi 11 février 13
  • 91. Cherchons encore ! { Cluster "took" : 24, Nœud 1 "timed_out" : false,Nœud 3 Nœud 2 "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, Doc Shard 0 1 "hits" : { Shard 0 "total" : 2, "max_score" : 0.227, Shard 1 "hits" : [ { "_index" : "twitter", "_type" : "tweet", "_id" : "1", "_score" : 0.227, "_source" : { ... } Doc }, { 2 Doc "_index" : "twitter", 1 Client "_type" : "tweet", $ curl localhost:9200/twitter/_search?q=elasticsearch CURL "_id" : "2", "_score" : 0.152, "_source" : { ... } } ] }lundi 11 février 13
  • 92. La communauté ~100 contributeurs directs au projet (+ de 3200 watchers et + de 620 forks)lundi 11 février 13
  • 93. La communauté ~100 contributeurs directs au projet (+ de 3200 watchers et + de 620 forks)lundi 11 février 13
  • 94. La communauté ~170 inscrits sur la mailing list, 70 messages / mois, ~270 followerslundi 11 février 13
  • 95. lundi 11 février 13
  • 96. Rejoignez le mouvement ! @ElasticsearchFR www.elasticsearch.fr ss re og pr in Questions ? Posez aussi vos questions sur elasticsearch-fr@googlegroups.com Prochaines rencontres sur http://www.meetup.com/elasticsearchfr/ Slides sur http://fr.slideshare.net/dadoonet Sources sur https://github.com/elasticsearchfr/talkslundi 11 février 13