Ce diaporama a bien été signalé.
Le téléchargement de votre SlideShare est en cours. ×

Elasticsearch - Devoxx France 2012

Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Publicité
Chargement dans…3
×

Consultez-les par la suite

1 sur 156 Publicité

Elasticsearch - Devoxx France 2012

Télécharger pour lire hors ligne

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

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

Publicité
Publicité

Plus De Contenu Connexe

Diaporamas pour vous (20)

Les utilisateurs ont également aimé (20)

Publicité

Similaire à Elasticsearch - Devoxx France 2012 (20)

Publicité

Plus récents (20)

Elasticsearch - Devoxx France 2012

  1. 1. Elasticsearch : moteur de recherche taillé pour le cloud par David Pilato @dadoonet et @elasticsearchfr 1
  2. 2. { “speaker” : “David Pilato” } $ curl http://localhost:9200/devoxx/speaker/dpilato { "nom" : "David Pilato", "jobs" : [ { "boite" : "SRA Europe (SSII)", "mission" : "bon à tout faire", "duree" : 3 }, { "boite" : "SFR", "mission" : "touche à tout", "duree" : 3 }, { "boite" : "e-Brands / Vivendi", "mission" : "chef de projets", "duree" : 4 }, { "boite" : "DGDDI (douane)", "mission" : "mouton à 5 pattes", "duree" : 7 } ], "passions" : [ "famille", "job", "deejay" ], "blog" : "http://dev.david.pilato.fr/", "twitter" : [ "@dadoonet", "@elasticsearchfr" ], "email" : "david@pilato.fr" } 2
  3. 3. Abstract • Un moteur ? Pourquoi faire ? • Elasticsearch : une solution simple, complète, performante • Et si on indexait Twitter ? Faites du bruit sur @DevoxxFR avec le hashtag #elasticsearch ! 3
  4. 4. Un moteur ? Pour quoi faire ? LE BESOIN 4
  5. 5. Cas d'école « SQL old school » Un document dans une base de données : • Un attribut date : 19/04/2012 • Un attribut codifié pays : FR • Correspondant à la table d’association code/libellé • Code : FR • Libellé : France • Un attribut commentaire : "J’observe une erreur de saisie dans la désignation commerciale du produit. Songer à téléphoner à David." Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 5
  6. 6. Cas d'école « SQL old school » Un document dans une base de données : doc pays • Un attribut date : 19/04/2012 date code • Un attribut codifié pays : FR pays libelle • Correspondant à la table d’association code/libellé commentaire • Code : FR • Libellé : France • Un attribut commentaire : "J’observe une erreur de saisie dans la désignation commerciale du produit. Songer à téléphoner à David." Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 5
  7. 7. Cas d'école « SQL old school » • Cherche moi un document de décembre 2011 portant sur la france et contenant saisie et david • En SQL : Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 6
  8. 8. Cas d'école « SQL old school » • Cherche moi un document de décembre 2011 portant sur la france et contenant saisie 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 ‘%saisie%' AND lower(doc.commentaire) LIKE ‘%david%'; Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 6
  9. 9. Performances du like ‘%’ Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 7
  10. 10. Performances du like ‘%’ Voir aussi : http://www.cestpasdur.com/2012/04/01/elasticsearch-vs-mysql-recherche Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 7
  11. 11. C'est quoi un moteur ? Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 8
  12. 12. C'est quoi un moteur ? • Un moteur de recherche est composé de : • un moteur d’indexation de documents • un moteur de recherche sur les index Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 8
  13. 13. C'est quoi un moteur ? • 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 : Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 8
  14. 14. C'est quoi un moteur ? • 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 ! Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 8
  15. 15. ELASTICSEARCH 9
  16. 16. Your Data, your Search ! ELASTICSEARCH 9
  17. 17. Elasticsearch Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 10
  18. 18. Elasticsearch • Moteur de recherche pour la génération NoSQL Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 10
  19. 19. Elasticsearch • Moteur de recherche pour la génération NoSQL • Basé sur le standard Apache Lucene Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 10
  20. 20. 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 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 10
  21. 21. 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 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 10
  22. 22. 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 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 10
  23. 23. 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 ! Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 10
  24. 24. Points clés Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 11
  25. 25. Points clés • Simple ! En quelques minutes (Zero Conf), on dispose d’un moteur complet prêt à recevoir nos documents à indexer et à faire des recherches. Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 11
  26. 26. Points clés • Simple ! En quelques minutes (Zero Conf), on dispose d’un moteur complet prêt à recevoir nos documents à indexer et à faire des recherches. • Efficace ! Il suffit de démarrer des nœuds Elasticsearch pour bénéficier immédiatement de la réplication, de l’équilibrage de charge. Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 11
  27. 27. Points clés • Simple ! En quelques minutes (Zero Conf), on dispose d’un moteur complet prêt à recevoir nos documents à indexer et à faire des recherches. • Efficace ! Il suffit de démarrer des nœuds Elasticsearch pour bénéficier immédiatement de la réplication, de l’équilibrage de charge. • Puissant ! Basé sur Lucene, il en parallélise les traitements pour donner des temps de réponse acceptables (en général inférieurs à 100ms) Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 11
  28. 28. Points clés • Simple ! En quelques minutes (Zero Conf), on dispose d’un moteur complet prêt à recevoir nos documents à indexer et à faire des recherches. • Efficace ! Il suffit de démarrer des nœuds Elasticsearch pour bénéficier immédiatement de la réplication, de l’équilibrage de charge. • Puissant ! Basé sur Lucene, il en parallélise les traitements pour donner des temps de réponse acceptables (en général inférieurs à 100ms) • Complet ! Beaucoup de fonctionnalités : analyse et facettes, percolation, rivières, plugins, … Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 11
  29. 29. Ranger ses données Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 12
  30. 30. Ranger ses données • Document : Un objet représentant les données (au sens NoSQL). Penser "recherche", c'est oublier le SGBDR et penser "Documents" Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 12
  31. 31. Ranger ses données • Document : Un objet représentant les données (au sens NoSQL). Penser "recherche", c'est oublier le SGBDR et penser "Documents" { "text": "Bienvenue à la conférence #elasticsearch pour #devoxxfr", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", "truncated": false, Un tweet "retweet_count": 0, "hashtag": [ { "text": "elasticsearch", "start": 27, "end": 40 }, { "text": "devoxxfr", "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 !" } } Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 12
  32. 32. Ranger ses données • Document : Un objet représentant les données (au sens NoSQL). Penser "recherche", c'est oublier le SGBDR et penser "Documents" { "text": "Bienvenue à la conférence #elasticsearch pour #devoxxfr", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", "truncated": false, Un tweet "retweet_count": 0, "hashtag": [ { "text": "elasticsearch", "start": 27, "end": 40 }, { "text": "devoxxfr", "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 !" } } • Type : Regroupe des documents de même type Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 12
  33. 33. Ranger ses données • Document : Un objet représentant les données (au sens NoSQL). Penser "recherche", c'est oublier le SGBDR et penser "Documents" { "text": "Bienvenue à la conférence #elasticsearch pour #devoxxfr", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", "truncated": false, Un tweet "retweet_count": 0, "hashtag": [ { "text": "elasticsearch", "start": 27, "end": 40 }, { "text": "devoxxfr", "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 !" } } • Type : Regroupe des documents de même type • Index : Espace logique de stockage des documents dont les types sont fonctionnellement communs Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 12
  34. 34. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Méthodes HTTP : GET, POST, PUT, DELETE Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 13
  35. 35. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Méthodes HTTP : GET, POST, PUT, DELETE Documents • curl -XPUT http://localhost:9200/twitter/tweet/1 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 13
  36. 36. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Méthodes HTTP : GET, POST, PUT, DELETE Documents • curl -XPUT http://localhost:9200/twitter/tweet/1 • curl -XGET http://localhost:9200/twitter/tweet/1 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 13
  37. 37. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Méthodes HTTP : GET, POST, PUT, DELETE 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 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 13
  38. 38. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Méthodes HTTP : GET, POST, PUT, DELETE 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 -XGET http://localhost:9200/twitter/tweet/_search Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 13
  39. 39. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Méthodes HTTP : GET, POST, PUT, DELETE 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 -XGET http://localhost:9200/twitter/tweet/_search • curl -XGET http://localhost:9200/twitter/_search Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 13
  40. 40. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Méthodes HTTP : GET, POST, PUT, DELETE 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 -XGET http://localhost:9200/twitter/tweet/_search • curl -XGET http://localhost:9200/twitter/_search • curl -XGET http://localhost:9200/_search Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 13
  41. 41. Interagir avec Elasticsearch API REST : http://host:port/[index]/[type]/[_action/id] Méthodes HTTP : GET, POST, PUT, DELETE 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 -XGET http://localhost:9200/twitter/tweet/_search • curl -XGET http://localhost:9200/twitter/_search • curl -XGET http://localhost:9200/_search Meta données Elasticsearch • curl -XGET http://localhost:9200/twitter/_status Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 13
  42. 42. Indexons un document $ curl -XPUT localhost:9200/twitter/tweet/1 -d ' { "text": "Bienvenue à la conférence #elasticsearch pour #devoxxfr", "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": "devoxxfr", "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 !" } }' Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 14
  43. 43. Indexons un document $ curl -XPUT localhost:9200/twitter/tweet/1 -d ' { "text": "Bienvenue à la conférence #elasticsearch pour #devoxxfr", "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": "devoxxfr", "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 !" } }' { "ok":true, "_index":"twitter", "_type":"tweet", "_id":"1" } Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 14
  44. 44. Cherchons un document $ curl localhost:9200/twitter/tweet/_search?q=elasticsearch Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 15
  45. 45. Cherchons un document $ 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 #devoxxfr", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", […] } } ] } } Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 15
  46. 46. Cherchons un document $ curl localhost:9200/twitter/tweet/_search?q=elasticsearch { "took" : 24, "timed_out" : false, Nb de 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 #devoxxfr", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", […] } } ] } } Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 15
  47. 47. Cherchons un document $ 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 #devoxxfr", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", […] } } ] } } Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 15
  48. 48. Cherchons un document $ 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 #devoxxfr", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", […] Pertinence } } ] } } Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 15
  49. 49. Cherchons un document $ curl localhost:9200/twitter/tweet/_search?q=elasticsearch { "took" : 24, "timed_out" : false, Document "_shards" : { "total" : 5, "successful" : 5, "failed" : 0 }, "hits" : { source "total" : 1, "max_score" : 0.227, "hits" : [ { "_index" : "twitter", "_type" : "tweet", "_id" : "1", "_score" : 0.227, "_source" : { "text": "Bienvenue à la conférence #elasticsearch pour #devoxxfr", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", […] } } ] } } Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 15
  50. 50. Les résultats de recherche Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 16
  51. 51. Les résultats de recherche • Elasticsearch ne renvoie que les 10 premiers résultats (même sur plusieurs millions) • Elasticsearch permet ensuite de se "balader" dans les résultats $ curl "localhost:9200/twitter/tweet/_search?q=elasticsearch&from=10&size=10" Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 16
  52. 52. Les résultats de recherche • Elasticsearch ne renvoie que les 10 premiers résultats (même sur plusieurs millions) • Elasticsearch permet ensuite de se "balader" dans les résultats $ curl "localhost:9200/twitter/tweet/_search?q=elasticsearch&from=10&size=10" • La pertinence est calculée suivant le nombre d'occurrences plus ou moins exactes de chaque terme dans un document $ curl "localhost:9200/twitter/tweet/_search?q=elasticsearch&explain=true" Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 16
  53. 53. Quelques types de recherche Langage QueryDSL pour les recherches avancées Type Description Recherche tout le contenu (pratique avec des filtres) Recherche avec analyse, jokers (syntaxe Lucene possible* +, -, FROM, TO, ^) Recherche d'un terme sans analyse préalable Recherche d'un texte avec analyse (par défaut OR sur chaque token) Recherche avec joker (*, ?) Recherche multi-critères (MUST, MUST NOT, SHOULD) Recherche intervalle (>, >=, <, <=) Utile pour faire de l'autocomplétion Filtrage (couplage de filtres et de queries) Permet des recherches par vraisemblance de termes Permet de trouver des documents avec un minimum de termes Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 17
  54. 54. Quelques types de recherche Langage QueryDSL pour les recherches avancées Type Description Match All Recherche tout le contenu (pratique avec des filtres) QueryString Recherche avec analyse, jokers (syntaxe Lucene possible* +, -, FROM, TO, ^) Term Recherche d'un terme sans analyse préalable Text Recherche d'un texte avec analyse (par défaut OR sur chaque token) Wildcard Recherche avec joker (*, ?) Bool Recherche multi-critères (MUST, MUST NOT, SHOULD) Range Recherche intervalle (>, >=, <, <=) Prefix Utile pour faire de l'autocomplétion Filtered Filtrage (couplage de filtres et de queries) Fuzzy like this Permet des recherches par vraisemblance de termes More like this Permet de trouver des documents avec un minimum de termes * http://lucene.apache.org/core/old_versioned_docs/versions/3_5_0/queryparsersyntax.html Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 17
  55. 55. LA COLLECTE AUTOMATIQUE DE DONNÉES 18
  56. 56. Ou "La vie est un long fleuve tranquille !" LA COLLECTE AUTOMATIQUE DE DONNÉES 18
  57. 57. La collecte Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 19
  58. 58. La collecte Stockage Données Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 19
  59. 59. La collecte Doc Stockage Données Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 19
  60. 60. La collecte Stockage Données Doc Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 20
  61. 61. La collecte Doc Stockage Données Doc Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 20
  62. 62. La collecte Stockage Données Doc Doc Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 21
  63. 63. La collecte Stockage Données Doc Doc Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 21
  64. 64. La collecte Stockage Données Doc Doc Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 21
  65. 65. La collecte Stockage Données Doc Doc Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 22
  66. 66. La collecte Doc Stockage Données Doc Doc Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 22
  67. 67. La collecte Stockage Données Doc Doc Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 23
  68. 68. La collecte Stockage Données Doc Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 24
  69. 69. Rivers Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 25
  70. 70. Rivers • CouchDB River Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 25
  71. 71. Rivers • CouchDB River • MongoDB River Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 25
  72. 72. Rivers • CouchDB River • MongoDB River • Wikipedia River Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 25
  73. 73. Rivers • CouchDB River • MongoDB River • Wikipedia River • Twitter River Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 25
  74. 74. Rivers • CouchDB River • MongoDB River • Wikipedia River • Twitter River • RabbitMQ River Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 25
  75. 75. Rivers • CouchDB River • MongoDB River • Wikipedia River • Twitter River • RabbitMQ River • RSS River Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 25
  76. 76. Rivers • CouchDB River • MongoDB River • Wikipedia River • Twitter River • RabbitMQ River • RSS River • Dick Rivers Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 25
  77. 77. La puissance des facettes ! Faites parler vos données en les regardant sous différentes facettes ! ANALYSE DES RÉSULTATS (EN TEMPS QUASI RÉEL) 26
  78. 78. Les facettes ID Username Date Hashtags 1 dadoonet 2012-04-18 1 2 devoxxfr 2012-04-18 5 Des tweets 3 elasticsearchfr 2012-04-18 2 4 dadoonet 2012-04-18 2 5 devoxxfr 2012-04-18 6 6 elasticsearchfr 2012-04-19 3 7 dadoonet 2012-04-19 3 8 devoxxfr 2012-04-19 7 9 elasticsearchfr 2012-04-20 4 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 27
  79. 79. Facette "Term" Username Date Hashtags dadoonet 2012-04-18 1 devoxxfr 2012-04-18 5 elasticsearchfr 2012-04-18 2 dadoonet 2012-04-18 2 devoxxfr 2012-04-18 6 elasticsearchfr 2012-04-19 3 dadoonet 2012-04-19 3 devoxxfr 2012-04-19 7 elasticsearchfr 2012-04-20 4 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 28
  80. 80. Facette "Term" Username Date Hashtags dadoonet 2012-04-18 1 devoxxfr 2012-04-18 5 elasticsearchfr 2012-04-18 Username 2 Count dadoonet 2012-04-18 dadoonet 2 3 devoxxfr 2012-04-18 devoxxfr6 3 elasticsearchfr 2012-04-19 elasticsearchfr 3 3 dadoonet 2012-04-19 3 devoxxfr 2012-04-19 7 elasticsearchfr 2012-04-20 4 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 28
  81. 81. Facette "Term" "facets" : { "users" : { "terms" : {"field" : "username"} } } ID Username Date Hashtags 1 dadoonet 2012-04-18 1 2 devoxxfr 2012-04-18 5 3 elasticsearchfr 2012-04-18 2 4 dadoonet 2012-04-18 2 5 devoxxfr 2012-04-18 6 6 elasticsearchfr 2012-04-19 3 7 dadoonet 2012-04-19 3 8 devoxxfr 2012-04-19 7 9 elasticsearchfr 2012-04-20 4 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 29
  82. 82. Facette "Term" "facets" : { "users" : { "terms" : {"field" : "username"} } } ID Username Date "facets" : { Hashtags 1 dadoonet 2012-04-18 : { "users" 1 2 devoxxfr 2012-04-18 : "terms", "_type" 5 "missing" : 0, 3 elasticsearchfr 2012-04-18 2 "total": 9, 4 dadoonet 2012-04-18 "other": 0, 2 5 devoxxfr 2012-04-18 : [ "terms" 6 6 elasticsearchfr { "term" : "dadoonet", "count" : 3 }, 2012-04-19 3 { "term" : "devoxxfr", "count" : 3 }, 7 dadoonet 2012-04-19 3 { "term" : "elasticsearchfr", "count" : 3 } 8 devoxxfr 2012-04-19 ] 7 9 elasticsearchfr } 2012-04-20 4 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 29
  83. 83. Facette "Date Histogram" ame Date Hashtags onet 2012-04-18 1 xxfr 2012-04-18 5 archfr 2012-04-18 2 onet 2012-04-18 2 xxfr 2012-04-18 6 archfr 2012-04-19 3 onet 2012-04-19 3 xxfr 2012-04-19 7 archfr 2012-04-20 4 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 30
  84. 84. Facette "Date Histogram" ame Date Hashtags onet 2012-04-18 1 Par mois Date Count xxfr 2012-04-18 5 2012-04 9 archfr 2012-04-18 2 onet 2012-04-18 2 Par jour xxfr 2012-04-18 6 Date Count archfr 2012-04-19 3 2012-04-18 5 onet 2012-04-19 3 2012-04-19 3 xxfr 2012-04-19 7 2012-04-20 1 archfr 2012-04-20 4 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 30
  85. 85. Facette "Date Histogram" "facets" : { "perday" : { "date_histogram" : { "field" : "date", ame Date "interval" : "day" Hashtags } onet 2012-04-18 }1 xxfr 2012-04-18 } 5 archfr 2012-04-18 2 onet 2012-04-18 2 xxfr 2012-04-18 6 archfr 2012-04-19 3 onet 2012-04-19 3 xxfr 2012-04-19 7 archfr 2012-04-20 4 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 31
  86. 86. Facette "Date Histogram" "facets" : { "perday" : { "date_histogram" : { "field" : "date", ame Date "interval" : "day" Hashtags } onet 2012-04-18 }1 xxfr 2012-04-18 } 5 archfr 2012-04-18 2 "facets" : { onet 2012-04-18 2 "perday" : { xxfr 2012-04-18 "_type" : "date_histogram", 6 "entries": [ archfr 2012-04-19 3 { "time": 1334700000000, "count": 5 }, onet 2012-04-19 3 { "time": 1334786400000, "count": 3 }, xxfr 2012-04-19 7 { "time": 1334872800000, "count": 1 } ] archfr 2012-04-20 } 4 } Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 31
  87. 87. Facette "Ranges" Hashtags 8 1 8 5 8 2 8 2 8 6 9 3 9 3 9 7 0 4 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 32
  88. 88. Facette "Ranges" Hashtags 8 1 8 5 Ranges Count Min Max Moy Total 8 2 x<3 3 1 2 1.667 5 8 2 3 <= x < 5 3 3 4 3.333 10 8 6 x >= 5 3 5 7 6 18 9 3 9 3 9 7 0 4 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 32
  89. 89. Facette "Ranges" "facets" : { "hashtags" : { "range" : { "field" : "hashtags", "ranges" : [ { "to" : 3 }, { "from" : 3, "to" : 5 }, { "from" : 5 } Hashtags ] } } } 8 1 8 5 8 2 8 2 8 6 9 3 9 3 9 7 0 4 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 33
  90. 90. Facette "Ranges" "facets" : { "hashtags" : { "range" : { "field" : "hashtags", "ranges" : [ { "to" : 3 }, { "from" : 3, "to" : 5 }, { "from" : 5 } Hashtags ] } } } 8 1 "facets" : { 8 5 "hashtags" : { "_type" : "range", 8 2 "ranges" : [ 8 2 { "to": 3, 8 6 "count": 3, "min": 1, "max": 2, "total": 5, "mean": 1.667 }, 9 3 { "from":3, "to" : 5, 9 3 "count": 3, "min": 3, "max": 4, "total": 10, "mean": 3.333 }, 9 7 { "from":5, 0 4 "count": 3, "min": 5, "max": 7, "total": 18, "mean": 6 } ] } } Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 33
  91. 91. Usage "site marchand" Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 34
  92. 92. Usage "site marchand" Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 34
  93. 93. Usage "site marchand" Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 34
  94. 94. Usage "site marchand" Ranges Term Term Ranges Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 34
  95. 95. La navigation par facettes Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 35
  96. 96. La navigation par facettes Critère fixe Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 35
  97. 97. La navigation par facettes Critère fixe Résultats Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 35
  98. 98. La navigation par facettes Critère fixe Term Résultats Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 35
  99. 99. La navigation par facettes Critère fixe Term Date histogram Résultats Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 35
  100. 100. La navigation par facettes Critère fixe Term Ranges Date histogram Résultats Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 35
  101. 101. La navigation par facettes Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 36
  102. 102. La navigation par facettes Critères Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 36
  103. 103. Analyse temps-réel des données • Faire un matchAll sur l'ensemble des données • Actualiser toutes les x secondes • Indexer en même temps les nouvelles données Date histogram Term Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 37
  104. 104. Avons-nous fait du bruit ? DÉMONSTRATION 38
  105. 105. Démonstration : architecture Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 39
  106. 106. Démonstration : architecture Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 39
  107. 107. Démonstration : architecture Twitter Streaming API Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 39
  108. 108. Démonstration : architecture Twitter Streaming API Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 39
  109. 109. Démonstration : architecture Twitter Streaming API Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 39
  110. 110. Démonstration : architecture Twitter Twitter Streaming River API $ curl -XPUT localhost:9200/_river/twitter/_meta -d ' { "type" : "twitter", "twitter" : { "user" : "twitter_user", "password" : "twitter_passowrd", "filter" : { "tracks" : ["devoxxfr"] } } }' Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 39
  111. 111. Démonstration : architecture Chrome Twitter Twitter Streaming River API $ curl -XPUT localhost:9200/_river/twitter/_meta -d ' { "type" : "twitter", "twitter" : { "user" : "twitter_user", "password" : "twitter_passowrd", "filter" : { "tracks" : ["devoxxfr"] } } }' Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 39
  112. 112. Un peu plus de technique : partitions / réplications / scalabilité ARCHITECTURE 40
  113. 113. Lexique Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 41
  114. 114. Lexique • Nœud (node) : Une instance d'Elasticsearch (~ machine ?) Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 41
  115. 115. Lexique • Nœud (node) : Une instance d'Elasticsearch (~ machine ?) • Cluster : Un ensemble de nœuds Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 41
  116. 116. 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 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 41
  117. 117. 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 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 41
  118. 118. 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 • Partition primaire (primary shard) : partition élue "principale" dans l'ensemble du cluster. C'est là que se fait l'indexation par Lucene. Il n'y en a qu'une seule par shard dans l'ensemble du cluster. Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 41
  119. 119. 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 • Partition primaire (primary shard) : partition élue "principale" dans l'ensemble du cluster. C'est là que se fait l'indexation par Lucene. Il n'y en a qu'une seule par shard dans l'ensemble du cluster. • Partition secondaire (secondary shard) : partitions secondaires stockant les replicas des partitions primaires. Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 41
  120. 120. Créons un index Cluster Nœud 1 Client CURL Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 42
  121. 121. Créons un index $ curl -XPUT localhost:9200/twitter -d '{ Cluster "index" : { "number_of_shards" : 2, Nœud 1 "number_of_replicas" : 1 Shard 0 } }' Shard 1 réplication non respectée Client CURL Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 42
  122. 122. Créons un index $ curl -XPUT localhost:9200/twitter -d '{ Cluster "index" : { "number_of_shards" : 2, Nœud 1 Nœud 2 "number_of_replicas" : 1 Shard 0 Shard 0 } }' Shard 1 Shard 1 réplication respectée Client CURL Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 42
  123. 123. Réallocation dynamique Cluster Nœud 1 Nœud 2 Shard 0 Shard 0 Shard 1 Shard 1 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 43
  124. 124. Réallocation dynamique Cluster Nœud 1 Nœud 2 Nœud 3 Shard 0 Shard 0 Shard 1 Shard 1 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 43
  125. 125. Réallocation dynamique Cluster Nœud 1 Nœud 2 Nœud 3 Shard 0 Shard 0 Shard 0 Shard 1 Shard 1 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 44
  126. 126. Réallocation dynamique Cluster Nœud 1 Nœud 2 Nœud 3 Shard 0 Shard 0 Shard 1 Shard 1 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 44
  127. 127. Réallocation dynamique Cluster Nœud 1 Nœud 2 Nœud 3 Nœud 4 Shard 0 Shard 0 Shard 1 Shard 1 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 44
  128. 128. 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 1 Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 45
  129. 129. 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, c'est trouver le bon équilibre entre le nombre de nodes, shards et replicas ! Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 45
  130. 130. 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 #devoxxfr", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", ... }' Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 46
  131. 131. 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 #devoxxfr", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", ... }' Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 47
  132. 132. 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 #devoxxfr", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", ... }' Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 47
  133. 133. 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 #devoxxfr", "created_at": "2012-04-06T20:45:36.000Z", "source": "Twitter for iPad", ... }' Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 48
  134. 134. 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 à #devoxxfr", "created_at": "2012-04-06T21:12:52.000Z", "source": "Twitter for iPad", ... }' Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 49
  135. 135. 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 à #devoxxfr", "created_at": "2012-04-06T21:12:52.000Z", "source": "Twitter for iPad", ... }' 50
  136. 136. 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 à #devoxxfr", "created_at": "2012-04-06T21:12:52.000Z", "source": "Twitter for iPad", ... }' Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 51
  137. 137. 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 à #devoxxfr", "created_at": "2012-04-06T21:12:52.000Z", "source": "Twitter for iPad", ... }' Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 51
  138. 138. 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 à #devoxxfr", "created_at": "2012-04-06T21:12:52.000Z", "source": "Twitter for iPad", ... }' Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 52
  139. 139. 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 CURL Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 53
  140. 140. 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 CURL Moteur Elasticsearch Rivers Facets Demo Architecture Communauté 53

Notes de l'éditeur

  • Enthousiasme.\nRemerciements.\n
  • Parcours :\n Ecole d&apos;ing&amp;#xE9; &amp;#xE0; Brest, \n puis 3 ans en SSII, \n 3 ans chez SFR/Cegetel r&amp;#xE9;seau de transmission (intranetisation du SI de supervision), \n 4 ans chez Vivendi Universal Net\n Depuis plus de 7 ans, je bosse pour la France &amp;#xE0; la douane pour le d&amp;#xE9;veloppement du SI, principalement\n D&amp;#xE9;claration de douane en ligne (12 millions de marchandises d&amp;#xE9;clar&amp;#xE9;s import/export par an)\n Projet de gestion des contr&amp;#xF4;les douanier\nPassions : \n Ma famille\n Mon job : j&apos;adore mon job\n Le mix occasionnel (sur mon compte twitter un lien vers mes podcasts)\nContacts :\n Twitter : dadoonet et animateur elasticsearchfr\n Email : david@pilato.fr\n
  • Points abord&amp;#xE9;s :\nA quels besoins essaye t on de r&amp;#xE9;pondre ? A quoi servirait un moteur de recherche dans mon SI ?\nComment Elasticsearch r&amp;#xE9;pond &amp;#xE0; ces besoins et &amp;#xE0; bien d&apos;autres encore\nD&amp;#xE9;mo Live : indexation de messages Twitter ! Faites du bruit en twittant sur @devoxxfr et #elasticsearch\n
  • Description de ma propre exp&amp;#xE9;rience en arrivant en douane il y a 7 ans par un cas type de la recherche SQL classique.\n
  • \n
  • \n
  • \n
  • Faire remarquer le like avec des wildcards sur le champ commentaire tr&amp;#xE8;s contre performant.\nTr&amp;#xE8;s contre performant. Jusqu&amp;#x2019;&amp;#xE0; 500 000 documents, on arrivait encore &amp;#xE0; tenir la charge avec des temps de r&amp;#xE9;ponse de moins de 5 secondes.\n
  • Lorsqu&amp;#x2019;on a atteint le million de d&amp;#xE9;clarations en douane, obligation d&amp;#x2019;enlever la fonctionnalit&amp;#xE9; like pour faire seulement du &amp;#xE9;gal &amp;#xE0;.\n\n
  • Parmi les moteurs existants, il y a depuis maintenant plus de 2 ans, Elasticsearch...\n
  • Parmi les moteurs existants, il y a depuis maintenant plus de 2 ans, Elasticsearch...\n
  • Parmi les moteurs existants, il y a depuis maintenant plus de 2 ans, Elasticsearch...\n
  • Principe fondamental : Ce sont vos donn&amp;#xE9;es : ce sera votre recherche. Il n&apos;y a que vous qui puissiez savoir ce que s&amp;#xE9;mantiquement repr&amp;#xE9;sentent vos donn&amp;#xE9;es, comment les chercher et comment pr&amp;#xE9;senter les r&amp;#xE9;sultats de recherche.\n
  • Principe fondamental : Ce sont vos donn&amp;#xE9;es : ce sera votre recherche. Il n&apos;y a que vous qui puissiez savoir ce que s&amp;#xE9;mantiquement repr&amp;#xE9;sentent vos donn&amp;#xE9;es, comment les chercher et comment pr&amp;#xE9;senter les r&amp;#xE9;sultats de recherche.\n
  • Moteur clairement NOSQL de son orientation Document\nBas&amp;#xE9; sur la formidable biblioth&amp;#xE8;que Lucene dont il masque la complexit&amp;#xE9; Java via des services HTTP / REST / JSON standards. Voir aussi la conf&amp;#xE9;rence de vendredi &amp;#xE0; 14H30 la conf&amp;#xE9;rence de Majirus FANSI sur les fondements de Lucene.\nDe fait, s&apos;utilise &amp;#xE0; partir de n&apos;importe quelle technologie\nAjoute la couche cloud qui manquait &amp;#xE0; Lucene : distribution, partionnement, scalabilit&amp;#xE9; pour en d&amp;#xE9;cupler d&apos;avantage la puissance en autant d&amp;#x2019;instances de Lucene que n&amp;#xE9;cessaire. \n\n\n
  • Moteur clairement NOSQL de son orientation Document\nBas&amp;#xE9; sur la formidable biblioth&amp;#xE8;que Lucene dont il masque la complexit&amp;#xE9; Java via des services HTTP / REST / JSON standards. Voir aussi la conf&amp;#xE9;rence de vendredi &amp;#xE0; 14H30 la conf&amp;#xE9;rence de Majirus FANSI sur les fondements de Lucene.\nDe fait, s&apos;utilise &amp;#xE0; partir de n&apos;importe quelle technologie\nAjoute la couche cloud qui manquait &amp;#xE0; Lucene : distribution, partionnement, scalabilit&amp;#xE9; pour en d&amp;#xE9;cupler d&apos;avantage la puissance en autant d&amp;#x2019;instances de Lucene que n&amp;#xE9;cessaire. \n\n\n
  • Moteur clairement NOSQL de son orientation Document\nBas&amp;#xE9; sur la formidable biblioth&amp;#xE8;que Lucene dont il masque la complexit&amp;#xE9; Java via des services HTTP / REST / JSON standards. Voir aussi la conf&amp;#xE9;rence de vendredi &amp;#xE0; 14H30 la conf&amp;#xE9;rence de Majirus FANSI sur les fondements de Lucene.\nDe fait, s&apos;utilise &amp;#xE0; partir de n&apos;importe quelle technologie\nAjoute la couche cloud qui manquait &amp;#xE0; Lucene : distribution, partionnement, scalabilit&amp;#xE9; pour en d&amp;#xE9;cupler d&apos;avantage la puissance en autant d&amp;#x2019;instances de Lucene que n&amp;#xE9;cessaire. \n\n\n
  • Moteur clairement NOSQL de son orientation Document\nBas&amp;#xE9; sur la formidable biblioth&amp;#xE8;que Lucene dont il masque la complexit&amp;#xE9; Java via des services HTTP / REST / JSON standards. Voir aussi la conf&amp;#xE9;rence de vendredi &amp;#xE0; 14H30 la conf&amp;#xE9;rence de Majirus FANSI sur les fondements de Lucene.\nDe fait, s&apos;utilise &amp;#xE0; partir de n&apos;importe quelle technologie\nAjoute la couche cloud qui manquait &amp;#xE0; Lucene : distribution, partionnement, scalabilit&amp;#xE9; pour en d&amp;#xE9;cupler d&apos;avantage la puissance en autant d&amp;#x2019;instances de Lucene que n&amp;#xE9;cessaire. \n\n\n
  • Moteur clairement NOSQL de son orientation Document\nBas&amp;#xE9; sur la formidable biblioth&amp;#xE8;que Lucene dont il masque la complexit&amp;#xE9; Java via des services HTTP / REST / JSON standards. Voir aussi la conf&amp;#xE9;rence de vendredi &amp;#xE0; 14H30 la conf&amp;#xE9;rence de Majirus FANSI sur les fondements de Lucene.\nDe fait, s&apos;utilise &amp;#xE0; partir de n&apos;importe quelle technologie\nAjoute la couche cloud qui manquait &amp;#xE0; Lucene : distribution, partionnement, scalabilit&amp;#xE9; pour en d&amp;#xE9;cupler d&apos;avantage la puissance en autant d&amp;#x2019;instances de Lucene que n&amp;#xE9;cessaire. \n\n\n
  • Moteur clairement NOSQL de son orientation Document\nBas&amp;#xE9; sur la formidable biblioth&amp;#xE8;que Lucene dont il masque la complexit&amp;#xE9; Java via des services HTTP / REST / JSON standards. Voir aussi la conf&amp;#xE9;rence de vendredi &amp;#xE0; 14H30 la conf&amp;#xE9;rence de Majirus FANSI sur les fondements de Lucene.\nDe fait, s&apos;utilise &amp;#xE0; partir de n&apos;importe quelle technologie\nAjoute la couche cloud qui manquait &amp;#xE0; Lucene : distribution, partionnement, scalabilit&amp;#xE9; pour en d&amp;#xE9;cupler d&apos;avantage la puissance en autant d&amp;#x2019;instances de Lucene que n&amp;#xE9;cessaire. \n\n\n
  • Si je devais r&amp;#xE9;sumer ES en quatre mots :\nIl est simple. Just run ! Pas de conf compliqu&amp;#xE9;e &amp;#xE0; faire. Comme la pub apple il y a une dizaine (ou vingtaine) : &quot;1&amp;#xE8;re &amp;#xE9;tape : branchez, 2&amp;#xE8;me &amp;#xE9;tape, connectez, 3&amp;#xE8;me &amp;#xE9;tape ...... il n&apos;y a pas de troisi&amp;#xE8;me &amp;#xE9;tape !&quot;\nIl est efficace. On ajoute des n&amp;#x153;uds et on b&amp;#xE9;n&amp;#xE9;ficie imm&amp;#xE9;diatement de la r&amp;#xE9;plication et de l&apos;&amp;#xE9;quilibrage de charge.\nIl est puissant. Bas&amp;#xE9; sur Lucene, il parall&amp;#xE9;lise ses traitements pour d&amp;#xE9;cupler la puissance de Lucene.\nIl est complet. Beaucoup de fonctionnalit&amp;#xE9;s natives ou sous forme de plugins.\nOn va voir &amp;#xE7;a de fa&amp;#xE7;on un peu plus pr&amp;#xE9;cise maintenant&amp;#x2026;\n
  • Si je devais r&amp;#xE9;sumer ES en quatre mots :\nIl est simple. Just run ! Pas de conf compliqu&amp;#xE9;e &amp;#xE0; faire. Comme la pub apple il y a une dizaine (ou vingtaine) : &quot;1&amp;#xE8;re &amp;#xE9;tape : branchez, 2&amp;#xE8;me &amp;#xE9;tape, connectez, 3&amp;#xE8;me &amp;#xE9;tape ...... il n&apos;y a pas de troisi&amp;#xE8;me &amp;#xE9;tape !&quot;\nIl est efficace. On ajoute des n&amp;#x153;uds et on b&amp;#xE9;n&amp;#xE9;ficie imm&amp;#xE9;diatement de la r&amp;#xE9;plication et de l&apos;&amp;#xE9;quilibrage de charge.\nIl est puissant. Bas&amp;#xE9; sur Lucene, il parall&amp;#xE9;lise ses traitements pour d&amp;#xE9;cupler la puissance de Lucene.\nIl est complet. Beaucoup de fonctionnalit&amp;#xE9;s natives ou sous forme de plugins.\nOn va voir &amp;#xE7;a de fa&amp;#xE7;on un peu plus pr&amp;#xE9;cise maintenant&amp;#x2026;\n
  • Si je devais r&amp;#xE9;sumer ES en quatre mots :\nIl est simple. Just run ! Pas de conf compliqu&amp;#xE9;e &amp;#xE0; faire. Comme la pub apple il y a une dizaine (ou vingtaine) : &quot;1&amp;#xE8;re &amp;#xE9;tape : branchez, 2&amp;#xE8;me &amp;#xE9;tape, connectez, 3&amp;#xE8;me &amp;#xE9;tape ...... il n&apos;y a pas de troisi&amp;#xE8;me &amp;#xE9;tape !&quot;\nIl est efficace. On ajoute des n&amp;#x153;uds et on b&amp;#xE9;n&amp;#xE9;ficie imm&amp;#xE9;diatement de la r&amp;#xE9;plication et de l&apos;&amp;#xE9;quilibrage de charge.\nIl est puissant. Bas&amp;#xE9; sur Lucene, il parall&amp;#xE9;lise ses traitements pour d&amp;#xE9;cupler la puissance de Lucene.\nIl est complet. Beaucoup de fonctionnalit&amp;#xE9;s natives ou sous forme de plugins.\nOn va voir &amp;#xE7;a de fa&amp;#xE7;on un peu plus pr&amp;#xE9;cise maintenant&amp;#x2026;\n
  • Si je devais r&amp;#xE9;sumer ES en quatre mots :\nIl est simple. Just run ! Pas de conf compliqu&amp;#xE9;e &amp;#xE0; faire. Comme la pub apple il y a une dizaine (ou vingtaine) : &quot;1&amp;#xE8;re &amp;#xE9;tape : branchez, 2&amp;#xE8;me &amp;#xE9;tape, connectez, 3&amp;#xE8;me &amp;#xE9;tape ...... il n&apos;y a pas de troisi&amp;#xE8;me &amp;#xE9;tape !&quot;\nIl est efficace. On ajoute des n&amp;#x153;uds et on b&amp;#xE9;n&amp;#xE9;ficie imm&amp;#xE9;diatement de la r&amp;#xE9;plication et de l&apos;&amp;#xE9;quilibrage de charge.\nIl est puissant. Bas&amp;#xE9; sur Lucene, il parall&amp;#xE9;lise ses traitements pour d&amp;#xE9;cupler la puissance de Lucene.\nIl est complet. Beaucoup de fonctionnalit&amp;#xE9;s natives ou sous forme de plugins.\nOn va voir &amp;#xE7;a de fa&amp;#xE7;on un peu plus pr&amp;#xE9;cise maintenant&amp;#x2026;\n
  • Un Document au sens NoSQL (tout est JSON dans Elasticsearch)\nPenser DOCUMENT ! Et non penser &amp;#xE0; l&amp;#x2019;organisation technique de ces documents (jointures, donn&amp;#xE9;es de r&amp;#xE9;f&amp;#xE9;rence, ...).\nQUE CHERCHENT MES UTILISATEURS : \ndes produits ? \ndes logs des serveurs, \ndes forums ou des discussions dans des forums ?\n
  • Un Document au sens NoSQL (tout est JSON dans Elasticsearch)\nPenser DOCUMENT ! Et non penser &amp;#xE0; l&amp;#x2019;organisation technique de ces documents (jointures, donn&amp;#xE9;es de r&amp;#xE9;f&amp;#xE9;rence, ...).\nQUE CHERCHENT MES UTILISATEURS : \ndes produits ? \ndes logs des serveurs, \ndes forums ou des discussions dans des forums ?\n
  • Un Document au sens NoSQL (tout est JSON dans Elasticsearch)\nPenser DOCUMENT ! Et non penser &amp;#xE0; l&amp;#x2019;organisation technique de ces documents (jointures, donn&amp;#xE9;es de r&amp;#xE9;f&amp;#xE9;rence, ...).\nQUE CHERCHENT MES UTILISATEURS : \ndes produits ? \ndes logs des serveurs, \ndes forums ou des discussions dans des forums ?\n
  • Un Document au sens NoSQL (tout est JSON dans Elasticsearch)\nPenser DOCUMENT ! Et non penser &amp;#xE0; l&amp;#x2019;organisation technique de ces documents (jointures, donn&amp;#xE9;es de r&amp;#xE9;f&amp;#xE9;rence, ...).\nQUE CHERCHENT MES UTILISATEURS : \ndes produits ? \ndes logs des serveurs, \ndes forums ou des discussions dans des forums ?\n
  • Un Document au sens NoSQL (tout est JSON dans Elasticsearch)\nPenser DOCUMENT ! Et non penser &amp;#xE0; l&amp;#x2019;organisation technique de ces documents (jointures, donn&amp;#xE9;es de r&amp;#xE9;f&amp;#xE9;rence, ...).\nQUE CHERCHENT MES UTILISATEURS : \ndes produits ? \ndes logs des serveurs, \ndes forums ou des discussions dans des forums ?\n
  • Maintenant que nous avons ces bases, commen&amp;#xE7;ons par indexer un document&amp;#x2026;\n\n
  • Maintenant que nous avons ces bases, commen&amp;#xE7;ons par indexer un document&amp;#x2026;\n\n
  • Maintenant que nous avons ces bases, commen&amp;#xE7;ons par indexer un document&amp;#x2026;\n\n
  • Maintenant que nous avons ces bases, commen&amp;#xE7;ons par indexer un document&amp;#x2026;\n\n
  • Maintenant que nous avons ces bases, commen&amp;#xE7;ons par indexer un document&amp;#x2026;\n\n
  • Maintenant que nous avons ces bases, commen&amp;#xE7;ons par indexer un document&amp;#x2026;\n\n
  • Maintenant que nous avons ces bases, commen&amp;#xE7;ons par indexer un document&amp;#x2026;\n\n
  • Maintenant que nous avons ces bases, commen&amp;#xE7;ons par indexer un document&amp;#x2026;\n\n
  • Maintenant que nous avons ces bases, commen&amp;#xE7;ons par indexer un document&amp;#x2026;\n\n
  • Maintenant que nous avons ces bases, commen&amp;#xE7;ons par indexer un document&amp;#x2026;\n\n
  • Maintenant que nous avons ces bases, commen&amp;#xE7;ons par indexer un document&amp;#x2026;\n\n
  • Maintenant que nous avons ces bases, commen&amp;#xE7;ons par indexer un document&amp;#x2026;\n\n
  • On indexe notre TWEET. ES nous r&amp;#xE9;pond que c&apos;est OK. Il faut imaginer qu&amp;#x2019;on vient juste de d&amp;#xE9;marrer un noeud elasticsearch et qu&amp;#x2019;on n&amp;#x2019;a absolument rien configur&amp;#xE9;. La commande est juste un PUT en CURL.\nES cr&amp;#xE9;&amp;#xE9; l&amp;#x2019;index, le type et trouve tout seul le mapping correspondant &amp;#xE0; chaque champ. Des chaines de caract&amp;#xE8;res, des dates, des bool&amp;#xE9;ens, des nombres, des tableaux, des objets, ...\nVous pouvez d&amp;#xE9;finir votre propre mapping pour chaque champ ainsi que des propri&amp;#xE9;t&amp;#xE9;s d&amp;#x2019;indexation. Par exemple, vous pourriez indiquer &amp;#xE0; Elasticsearch que le champ text est &amp;#xE0; analyser en FRANCAIS et donc qu&amp;#x2019;il faut ignorer les mots comme un, une, le, la, ...\nParmi les mappings possibles, il existe aussi la possibilit&amp;#xE9; d&amp;#x2019;envoyer des documents PDF, oOo ou autres dans un champ texte en les encodant en BASE64. ES indexera alors automatiquement le contenu. Tr&amp;#xE8;s puissant.\n
  • Un cas tr&amp;#xE8;s simple de recherche : en g&amp;#xE9;n&amp;#xE9;ral, on commence tous par l&amp;#xE0; !\nOn cherche le mot cl&amp;#xE9; elasticsearch\nES nous ram&amp;#xE8;ne un document JSON en retour qui contient :\nLe nb total de documents trouv&amp;#xE9;s\nUn tableau contenant les 10 premiers documents les plus pertinents avec pour chaque document :\n Ses coordonn&amp;#xE9;es (dans quel index, quel est le type et quel est l&apos;ID)\n Son score (autrement dit sa pertinence relative par rapport &amp;#xE0; d&apos;autres documents trouv&amp;#xE9;s)\n Et surtout : directement le source du document JSON que vous avez index&amp;#xE9; ! Pas besoin de retourner dans votre syst&amp;#xE8;me d&apos;information source pour afficher le r&amp;#xE9;sultat aux utilisateurs. Vous avez tout sous la main !\n
  • Un cas tr&amp;#xE8;s simple de recherche : en g&amp;#xE9;n&amp;#xE9;ral, on commence tous par l&amp;#xE0; !\nOn cherche le mot cl&amp;#xE9; elasticsearch\nES nous ram&amp;#xE8;ne un document JSON en retour qui contient :\nLe nb total de documents trouv&amp;#xE9;s\nUn tableau contenant les 10 premiers documents les plus pertinents avec pour chaque document :\n Ses coordonn&amp;#xE9;es (dans quel index, quel est le type et quel est l&apos;ID)\n Son score (autrement dit sa pertinence relative par rapport &amp;#xE0; d&apos;autres documents trouv&amp;#xE9;s)\n Et surtout : directement le source du document JSON que vous avez index&amp;#xE9; ! Pas besoin de retourner dans votre syst&amp;#xE8;me d&apos;information source pour afficher le r&amp;#xE9;sultat aux utilisateurs. Vous avez tout sous la main !\n
  • Un cas tr&amp;#xE8;s simple de recherche : en g&amp;#xE9;n&amp;#xE9;ral, on commence tous par l&amp;#xE0; !\nOn cherche le mot cl&amp;#xE9; elasticsearch\nES nous ram&amp;#xE8;ne un document JSON en retour qui contient :\nLe nb total de documents trouv&amp;#xE9;s\nUn tableau contenant les 10 premiers documents les plus pertinents avec pour chaque document :\n Ses coordonn&amp;#xE9;es (dans quel index, quel est le type et quel est l&apos;ID)\n Son score (autrement dit sa pertinence relative par rapport &amp;#xE0; d&apos;autres documents trouv&amp;#xE9;s)\n Et surtout : directement le source du document JSON que vous avez index&amp;#xE9; ! Pas besoin de retourner dans votre syst&amp;#xE8;me d&apos;information source pour afficher le r&amp;#xE9;sultat aux utilisateurs. Vous avez tout sous la main !\n
  • Un cas tr&amp;#xE8;s simple de recherche : en g&amp;#xE9;n&amp;#xE9;ral, on commence tous par l&amp;#xE0; !\nOn cherche le mot cl&amp;#xE9; elasticsearch\nES nous ram&amp;#xE8;ne un document JSON en retour qui contient :\nLe nb total de documents trouv&amp;#xE9;s\nUn tableau contenant les 10 premiers documents les plus pertinents avec pour chaque document :\n Ses coordonn&amp;#xE9;es (dans quel index, quel est le type et quel est l&apos;ID)\n Son score (autrement dit sa pertinence relative par rapport &amp;#xE0; d&apos;autres documents trouv&amp;#xE9;s)\n Et surtout : directement le source du document JSON que vous avez index&amp;#xE9; ! Pas besoin de retourner dans votre syst&amp;#xE8;me d&apos;information source pour afficher le r&amp;#xE9;sultat aux utilisateurs. Vous avez tout sous la main !\n
  • Un cas tr&amp;#xE8;s simple de recherche : en g&amp;#xE9;n&amp;#xE9;ral, on commence tous par l&amp;#xE0; !\nOn cherche le mot cl&amp;#xE9; elasticsearch\nES nous ram&amp;#xE8;ne un document JSON en retour qui contient :\nLe nb total de documents trouv&amp;#xE9;s\nUn tableau contenant les 10 premiers documents les plus pertinents avec pour chaque document :\n Ses coordonn&amp;#xE9;es (dans quel index, quel est le type et quel est l&apos;ID)\n Son score (autrement dit sa pertinence relative par rapport &amp;#xE0; d&apos;autres documents trouv&amp;#xE9;s)\n Et surtout : directement le source du document JSON que vous avez index&amp;#xE9; ! Pas besoin de retourner dans votre syst&amp;#xE8;me d&apos;information source pour afficher le r&amp;#xE9;sultat aux utilisateurs. Vous avez tout sous la main !\n
  • Un cas tr&amp;#xE8;s simple de recherche : en g&amp;#xE9;n&amp;#xE9;ral, on commence tous par l&amp;#xE0; !\nOn cherche le mot cl&amp;#xE9; elasticsearch\nES nous ram&amp;#xE8;ne un document JSON en retour qui contient :\nLe nb total de documents trouv&amp;#xE9;s\nUn tableau contenant les 10 premiers documents les plus pertinents avec pour chaque document :\n Ses coordonn&amp;#xE9;es (dans quel index, quel est le type et quel est l&apos;ID)\n Son score (autrement dit sa pertinence relative par rapport &amp;#xE0; d&apos;autres documents trouv&amp;#xE9;s)\n Et surtout : directement le source du document JSON que vous avez index&amp;#xE9; ! Pas besoin de retourner dans votre syst&amp;#xE8;me d&apos;information source pour afficher le r&amp;#xE9;sultat aux utilisateurs. Vous avez tout sous la main !\n
  • Un cas tr&amp;#xE8;s simple de recherche : en g&amp;#xE9;n&amp;#xE9;ral, on commence tous par l&amp;#xE0; !\nOn cherche le mot cl&amp;#xE9; elasticsearch\nES nous ram&amp;#xE8;ne un document JSON en retour qui contient :\nLe nb total de documents trouv&amp;#xE9;s\nUn tableau contenant les 10 premiers documents les plus pertinents avec pour chaque document :\n Ses coordonn&amp;#xE9;es (dans quel index, quel est le type et quel est l&apos;ID)\n Son score (autrement dit sa pertinence relative par rapport &amp;#xE0; d&apos;autres documents trouv&amp;#xE9;s)\n Et surtout : directement le source du document JSON que vous avez index&amp;#xE9; ! Pas besoin de retourner dans votre syst&amp;#xE8;me d&apos;information source pour afficher le r&amp;#xE9;sultat aux utilisateurs. Vous avez tout sous la main !\n
  • Un cas tr&amp;#xE8;s simple de recherche : en g&amp;#xE9;n&amp;#xE9;ral, on commence tous par l&amp;#xE0; !\nOn cherche le mot cl&amp;#xE9; elasticsearch\nES nous ram&amp;#xE8;ne un document JSON en retour qui contient :\nLe nb total de documents trouv&amp;#xE9;s\nUn tableau contenant les 10 premiers documents les plus pertinents avec pour chaque document :\n Ses coordonn&amp;#xE9;es (dans quel index, quel est le type et quel est l&apos;ID)\n Son score (autrement dit sa pertinence relative par rapport &amp;#xE0; d&apos;autres documents trouv&amp;#xE9;s)\n Et surtout : directement le source du document JSON que vous avez index&amp;#xE9; ! Pas besoin de retourner dans votre syst&amp;#xE8;me d&apos;information source pour afficher le r&amp;#xE9;sultat aux utilisateurs. Vous avez tout sous la main !\n
  • Il est possible &amp;#xE9;videmment de faire des recherches beaucoup plus complexes&amp;#x2026;\n
  • Il est possible &amp;#xE9;videmment de faire des recherches beaucoup plus complexes&amp;#x2026;\n
  • Il est possible &amp;#xE9;videmment de faire des recherches beaucoup plus complexes&amp;#x2026;\n
  • Il est possible &amp;#xE9;videmment de faire des recherches beaucoup plus complexes&amp;#x2026;\n
  • Il est possible &amp;#xE9;videmment de faire des recherches beaucoup plus complexes&amp;#x2026;\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Il existe pour cela le langage QueryDSL :\nMatch all : ram&amp;#xE8;ne tous les r&amp;#xE9;sultats de mon cluster, de mon index ou de mon type.\nQueryString : tr&amp;#xE8;s int&amp;#xE9;ressant pour passer des requ&amp;#xEA;tes type Lucene avec des + pour rendre obligatoire un terme ou &amp;#x2013; pour en exclure)\nTerm : recherche d&apos;un terme sans analyser le terme pass&amp;#xE9; en argument\nText : recherche d&apos;un texte qui sera analys&amp;#xE9; (donc les mots inutiles seront exclus)\nWildcard : joker\nBool : permet de combiner des crit&amp;#xE8;res : avec MUST : DOIT, MUST NOT : NE DOIT PAS, ou SHOULD : CA SERAIT BIEN SI IL Y &amp;#xC9;TAIT&amp;#x2026;\nRange : recherche dans un intervalle de valeurs (on l&apos;a vu avec les dates)\nPrefix : recherche de ce qui commence par : tr&amp;#xE8;s pratique pour l&apos;autocompletion car rapide en plus\nFiltered : on vient de le voir sur le slide d&apos;avant\nFuzzy like this : recherche par vraisemblance de termes. Il va prendre notre mot et en g&amp;#xE9;n&amp;#xE9;rer d&apos;autres ressemblants puis faire la recherche.\nMore like this : Dans l&apos;id&amp;#xE9;e, cela permet de trouver des documents ressemblants &amp;#xE0; d&apos;autres\n\nNous avons donc abord&amp;#xE9; jusqu&apos;&amp;#xE0; pr&amp;#xE9;sent : la cr&amp;#xE9;ation de documents, le mapping et la recherche.\nPour alimenter Elasticsearch, il faut aller puiser du contenu dans votre SI.\n\n\n
  • Principe : propager un contenu en &amp;#xE9;volution permanente vers Elasticsearch\nL&apos;image est : &quot;les rivi&amp;#xE8;res de donn&amp;#xE9;es qui se d&amp;#xE9;versent dans le fleuve de la recherche&quot;\n\n
  • Principe : propager un contenu en &amp;#xE9;volution permanente vers Elasticsearch\nL&apos;image est : &quot;les rivi&amp;#xE8;res de donn&amp;#xE9;es qui se d&amp;#xE9;versent dans le fleuve de la recherche&quot;\n\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Plus s&amp;#xE9;rieusement, aborde un des points que je pr&amp;#xE9;f&amp;#xE8;re de ES : l&amp;#x2019;analyse des donn&amp;#xE9;es en temps r&amp;#xE9;el\n
  • Regarder ses donn&amp;#xE9;es sous un autre angle. Les pr&amp;#xE9;senter sous des facettes diff&amp;#xE9;rentes...\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Beaucoup d&amp;#x2019;autres type de facettes existent comme par exemple geodistance qui permet de calculer le nombre d&amp;#x2019;&amp;#xE9;l&amp;#xE9;ments autour de moi dans un rayon de 10, 20 ou 50 km\nUn syst&amp;#xE8;me tr&amp;#xE8;s puissant qu&amp;#x2019;on peut donc retrouver sur les sites marchands\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • Fiche entreprise avec liste des contr&amp;#xF4;les douaniers\nDiff&amp;#xE9;rentes facettes et la liste des r&amp;#xE9;sultats en bas\nUn clic sur non conforme : ajout crit&amp;#xE8;re, relance recherche, c-a-d, nouveaux r&amp;#xE9;sultats et nouvelles facettes.\n
  • Fiche entreprise avec liste des contr&amp;#xF4;les douaniers\nDiff&amp;#xE9;rentes facettes et la liste des r&amp;#xE9;sultats en bas\nUn clic sur non conforme : ajout crit&amp;#xE8;re, relance recherche, c-a-d, nouveaux r&amp;#xE9;sultats et nouvelles facettes.\n
  • Fiche entreprise avec liste des contr&amp;#xF4;les douaniers\nDiff&amp;#xE9;rentes facettes et la liste des r&amp;#xE9;sultats en bas\nUn clic sur non conforme : ajout crit&amp;#xE8;re, relance recherche, c-a-d, nouveaux r&amp;#xE9;sultats et nouvelles facettes.\n
  • Fiche entreprise avec liste des contr&amp;#xF4;les douaniers\nDiff&amp;#xE9;rentes facettes et la liste des r&amp;#xE9;sultats en bas\nUn clic sur non conforme : ajout crit&amp;#xE8;re, relance recherche, c-a-d, nouveaux r&amp;#xE9;sultats et nouvelles facettes.\n
  • Fiche entreprise avec liste des contr&amp;#xF4;les douaniers\nDiff&amp;#xE9;rentes facettes et la liste des r&amp;#xE9;sultats en bas\nUn clic sur non conforme : ajout crit&amp;#xE8;re, relance recherche, c-a-d, nouveaux r&amp;#xE9;sultats et nouvelles facettes.\n
  • Fiche entreprise avec liste des contr&amp;#xF4;les douaniers\nDiff&amp;#xE9;rentes facettes et la liste des r&amp;#xE9;sultats en bas\nUn clic sur non conforme : ajout crit&amp;#xE8;re, relance recherche, c-a-d, nouveaux r&amp;#xE9;sultats et nouvelles facettes.\n
  • Fiche entreprise avec liste des contr&amp;#xF4;les douaniers\nDiff&amp;#xE9;rentes facettes et la liste des r&amp;#xE9;sultats en bas\nUn clic sur non conforme : ajout crit&amp;#xE8;re, relance recherche, c-a-d, nouveaux r&amp;#xE9;sultats et nouvelles facettes.\n
  • Fiche entreprise avec liste des contr&amp;#xF4;les douaniers\nDiff&amp;#xE9;rentes facettes et la liste des r&amp;#xE9;sultats en bas\nUn clic sur non conforme : ajout crit&amp;#xE8;re, relance recherche, c-a-d, nouveaux r&amp;#xE9;sultats et nouvelles facettes.\n
  • Fiche entreprise avec liste des contr&amp;#xF4;les douaniers\nDiff&amp;#xE9;rentes facettes et la liste des r&amp;#xE9;sultats en bas\nUn clic sur non conforme : ajout crit&amp;#xE8;re, relance recherche, c-a-d, nouveaux r&amp;#xE9;sultats et nouvelles facettes.\n
  • Fiche entreprise avec liste des contr&amp;#xF4;les douaniers\nDiff&amp;#xE9;rentes facettes et la liste des r&amp;#xE9;sultats en bas\nUn clic sur non conforme : ajout crit&amp;#xE8;re, relance recherche, c-a-d, nouveaux r&amp;#xE9;sultats et nouvelles facettes.\n
  • Ici, on pourra observer que les 6 cas de fraude ont &amp;#xE9;t&amp;#xE9; trouv&amp;#xE9;s en d&amp;#xE9;cembre 2010, Janvier, Octobre 2011 et Mars 2012.\n
  • Ici, on pourra observer que les 6 cas de fraude ont &amp;#xE9;t&amp;#xE9; trouv&amp;#xE9;s en d&amp;#xE9;cembre 2010, Janvier, Octobre 2011 et Mars 2012.\n
  • Profite de l&amp;#x2019;indexation permanente de ES sans d&amp;#xE9;gradation des performances de la recherche\nPour pr&amp;#xE9;senter des r&amp;#xE9;sultats en temps presque r&amp;#xE9;el. D&amp;#xE9;mo twitter.\n\n
  • Et nous allons v&amp;#xE9;rifier si nous (ou plut&amp;#xF4;t si VOUS) avez fait du bruit sur twitter&amp;#x2026;\n\n\n
  • Vous avez donc twitt&amp;#xE9; &amp;#xE0; fond pendant toute cette conf&amp;#xE9;rence. Ces tweets sont h&amp;#xE9;berg&amp;#xE9;s chez Twitter qui met &amp;#xE0; notre disposition une API streaming qui permet d&apos;&amp;#xE9;couter en permanence le bruit de fond (the hoose).\nPour cela, j&apos;ai pris une machine chez Amazon sur laquelle j&apos;ai install&amp;#xE9; ES.\nJ&apos;ai ajout&amp;#xE9; le plugin twitter et j&apos;ai cr&amp;#xE9;&amp;#xE9; une rivi&amp;#xE8;re twitter qui &amp;#xE9;coute ce flux de tweets en filtrant sur le mot devoxxfr.\nAinsi depuis fin Mars, le contenu devoxxfr se d&amp;#xE9;verse dans Elasticsearch.\nIl suffit ensuite de r&amp;#xE9;aliser une petite application d&apos;analyse. J&apos;ai fait &amp;#xE7;a en jQuery.\n\n
  • Vous avez donc twitt&amp;#xE9; &amp;#xE0; fond pendant toute cette conf&amp;#xE9;rence. Ces tweets sont h&amp;#xE9;berg&amp;#xE9;s chez Twitter qui met &amp;#xE0; notre disposition une API streaming qui permet d&apos;&amp;#xE9;couter en permanence le bruit de fond (the hoose).\nPour cela, j&apos;ai pris une machine chez Amazon sur laquelle j&apos;ai install&amp;#xE9; ES.\nJ&apos;ai ajout&amp;#xE9; le plugin twitter et j&apos;ai cr&amp;#xE9;&amp;#xE9; une rivi&amp;#xE8;re twitter qui &amp;#xE9;coute ce flux de tweets en filtrant sur le mot devoxxfr.\nAinsi depuis fin Mars, le contenu devoxxfr se d&amp;#xE9;verse dans Elasticsearch.\nIl suffit ensuite de r&amp;#xE9;aliser une petite application d&apos;analyse. J&apos;ai fait &amp;#xE7;a en jQuery.\n\n
  • Vous avez donc twitt&amp;#xE9; &amp;#xE0; fond pendant toute cette conf&amp;#xE9;rence. Ces tweets sont h&amp;#xE9;berg&amp;#xE9;s chez Twitter qui met &amp;#xE0; notre disposition une API streaming qui permet d&apos;&amp;#xE9;couter en permanence le bruit de fond (the hoose).\nPour cela, j&apos;ai pris une machine chez Amazon sur laquelle j&apos;ai install&amp;#xE9; ES.\nJ&apos;ai ajout&amp;#xE9; le plugin twitter et j&apos;ai cr&amp;#xE9;&amp;#xE9; une rivi&amp;#xE8;re twitter qui &amp;#xE9;coute ce flux de tweets en filtrant sur le mot devoxxfr.\nAinsi depuis fin Mars, le contenu devoxxfr se d&amp;#xE9;verse dans Elasticsearch.\nIl suffit ensuite de r&amp;#xE9;aliser une petite application d&apos;analyse. J&apos;ai fait &amp;#xE7;a en jQuery.\n\n
  • Vous avez donc twitt&amp;#xE9; &amp;#xE0; fond pendant toute cette conf&amp;#xE9;rence. Ces tweets sont h&amp;#xE9;berg&amp;#xE9;s chez Twitter qui met &amp;#xE0; notre disposition une API streaming qui permet d&apos;&amp;#xE9;couter en permanence le bruit de fond (the hoose).\nPour cela, j&apos;ai pris une machine chez Amazon sur laquelle j&apos;ai install&amp;#xE9; ES.\nJ&apos;ai ajout&amp;#xE9; le plugin twitter et j&apos;ai cr&amp;#xE9;&amp;#xE9; une rivi&amp;#xE8;re twitter qui &amp;#xE9;coute ce flux de tweets en filtrant sur le mot devoxxfr.\nAinsi depuis fin Mars, le contenu devoxxfr se d&amp;#xE9;verse dans Elasticsearch.\nIl suffit ensuite de r&amp;#xE9;aliser une petite application d&apos;analyse. J&apos;ai fait &amp;#xE7;a en jQuery.\n\n
  • Vous avez donc twitt&amp;#xE9; &amp;#xE0; fond pendant toute cette conf&amp;#xE9;rence. Ces tweets sont h&amp;#xE9;berg&amp;#xE9;s chez Twitter qui met &amp;#xE0; notre disposition une API streaming qui permet d&apos;&amp;#xE9;couter en permanence le bruit de fond (the hoose).\nPour cela, j&apos;ai pris une machine chez Amazon sur laquelle j&apos;ai install&amp;#xE9; ES.\nJ&apos;ai ajout&amp;#xE9; le plugin twitter et j&apos;ai cr&amp;#xE9;&amp;#xE9; une rivi&amp;#xE8;re twitter qui &amp;#xE9;coute ce flux de tweets en filtrant sur le mot devoxxfr.\nAinsi depuis fin Mars, le contenu devoxxfr se d&amp;#xE9;verse dans Elasticsearch.\nIl suffit ensuite de r&amp;#xE9;aliser une petite application d&apos;analyse. J&apos;ai fait &amp;#xE7;a en jQuery.\n\n
  • Vous avez donc twitt&amp;#xE9; &amp;#xE0; fond pendant toute cette conf&amp;#xE9;rence. Ces tweets sont h&amp;#xE9;berg&amp;#xE9;s chez Twitter qui met &amp;#xE0; notre disposition une API streaming qui permet d&apos;&amp;#xE9;couter en permanence le bruit de fond (the hoose).\nPour cela, j&apos;ai pris une machine chez Amazon sur laquelle j&apos;ai install&amp;#xE9; ES.\nJ&apos;ai ajout&amp;#xE9; le plugin twitter et j&apos;ai cr&amp;#xE9;&amp;#xE9; une rivi&amp;#xE8;re twitter qui &amp;#xE9;coute ce flux de tweets en filtrant sur le mot devoxxfr.\nAinsi depuis fin Mars, le contenu devoxxfr se d&amp;#xE9;verse dans Elasticsearch.\nIl suffit ensuite de r&amp;#xE9;aliser une petite application d&apos;analyse. J&apos;ai fait &amp;#xE7;a en jQuery.\n\n
  • Vous avez donc twitt&amp;#xE9; &amp;#xE0; fond pendant toute cette conf&amp;#xE9;rence. Ces tweets sont h&amp;#xE9;berg&amp;#xE9;s chez Twitter qui met &amp;#xE0; notre disposition une API streaming qui permet d&apos;&amp;#xE9;couter en permanence le bruit de fond (the hoose).\nPour cela, j&apos;ai pris une machine chez Amazon sur laquelle j&apos;ai install&amp;#xE9; ES.\nJ&apos;ai ajout&amp;#xE9; le plugin twitter et j&apos;ai cr&amp;#xE9;&amp;#xE9; une rivi&amp;#xE8;re twitter qui &amp;#xE9;coute ce flux de tweets en filtrant sur le mot devoxxfr.\nAinsi depuis fin Mars, le contenu devoxxfr se d&amp;#xE9;verse dans Elasticsearch.\nIl suffit ensuite de r&amp;#xE9;aliser une petite application d&apos;analyse. J&apos;ai fait &amp;#xE7;a en jQuery.\n\n
  • Vous avez donc twitt&amp;#xE9; &amp;#xE0; fond pendant toute cette conf&amp;#xE9;rence. Ces tweets sont h&amp;#xE9;berg&amp;#xE9;s chez Twitter qui met &amp;#xE0; notre disposition une API streaming qui permet d&apos;&amp;#xE9;couter en permanence le bruit de fond (the hoose).\nPour cela, j&apos;ai pris une machine chez Amazon sur laquelle j&apos;ai install&amp;#xE9; ES.\nJ&apos;ai ajout&amp;#xE9; le plugin twitter et j&apos;ai cr&amp;#xE9;&amp;#xE9; une rivi&amp;#xE8;re twitter qui &amp;#xE9;coute ce flux de tweets en filtrant sur le mot devoxxfr.\nAinsi depuis fin Mars, le contenu devoxxfr se d&amp;#xE9;verse dans Elasticsearch.\nIl suffit ensuite de r&amp;#xE9;aliser une petite application d&apos;analyse. J&apos;ai fait &amp;#xE7;a en jQuery.\n\n
  • Vous avez donc twitt&amp;#xE9; &amp;#xE0; fond pendant toute cette conf&amp;#xE9;rence. Ces tweets sont h&amp;#xE9;berg&amp;#xE9;s chez Twitter qui met &amp;#xE0; notre disposition une API streaming qui permet d&apos;&amp;#xE9;couter en permanence le bruit de fond (the hoose).\nPour cela, j&apos;ai pris une machine chez Amazon sur laquelle j&apos;ai install&amp;#xE9; ES.\nJ&apos;ai ajout&amp;#xE9; le plugin twitter et j&apos;ai cr&amp;#xE9;&amp;#xE9; une rivi&amp;#xE8;re twitter qui &amp;#xE9;coute ce flux de tweets en filtrant sur le mot devoxxfr.\nAinsi depuis fin Mars, le contenu devoxxfr se d&amp;#xE9;verse dans Elasticsearch.\nIl suffit ensuite de r&amp;#xE9;aliser une petite application d&apos;analyse. J&apos;ai fait &amp;#xE7;a en jQuery.\n\n
  • Vous avez donc twitt&amp;#xE9; &amp;#xE0; fond pendant toute cette conf&amp;#xE9;rence. Ces tweets sont h&amp;#xE9;berg&amp;#xE9;s chez Twitter qui met &amp;#xE0; notre disposition une API streaming qui permet d&apos;&amp;#xE9;couter en permanence le bruit de fond (the hoose).\nPour cela, j&apos;ai pris une machine chez Amazon sur laquelle j&apos;ai install&amp;#xE9; ES.\nJ&apos;ai ajout&amp;#xE9; le plugin twitter et j&apos;ai cr&amp;#xE9;&amp;#xE9; une rivi&amp;#xE8;re twitter qui &amp;#xE9;coute ce flux de tweets en filtrant sur le mot devoxxfr.\nAinsi depuis fin Mars, le contenu devoxxfr se d&amp;#xE9;verse dans Elasticsearch.\nIl suffit ensuite de r&amp;#xE9;aliser une petite application d&apos;analyse. J&apos;ai fait &amp;#xE7;a en jQuery.\n\n
  • Vous avez donc twitt&amp;#xE9; &amp;#xE0; fond pendant toute cette conf&amp;#xE9;rence. Ces tweets sont h&amp;#xE9;berg&amp;#xE9;s chez Twitter qui met &amp;#xE0; notre disposition une API streaming qui permet d&apos;&amp;#xE9;couter en permanence le bruit de fond (the hoose).\nPour cela, j&apos;ai pris une machine chez Amazon sur laquelle j&apos;ai install&amp;#xE9; ES.\nJ&apos;ai ajout&amp;#xE9; le plugin twitter et j&apos;ai cr&amp;#xE9;&amp;#xE9; une rivi&amp;#xE8;re twitter qui &amp;#xE9;coute ce flux de tweets en filtrant sur le mot devoxxfr.\nAinsi depuis fin Mars, le contenu devoxxfr se d&amp;#xE9;verse dans Elasticsearch.\nIl suffit ensuite de r&amp;#xE9;aliser une petite application d&apos;analyse. J&apos;ai fait &amp;#xE7;a en jQuery.\n\n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • \n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • 50 contributeurs directs au projet. Plus de 2000 d&amp;#xE9;veloppeurs qui surveillent le projet sur github et il y a presque 300 forks. Spring ou Hibernate c&apos;est moins de 200 forks.\nPROD : Klout.com : 100 millions d&amp;#x2019;utilisateurs dans le monde pour lesquels ES fait le calcul des perks\nSonian : archivage et recherche de documents dans le cloud (plus de 20 clusters et plus de 5 milliards de documents index&amp;#xE9;s)\nYfrog : indexation des photos et vid&amp;#xE9;os pour twitter (3 millions de tweets par jour)\nhttp://elasticsearch-users.115913.n3.nabble.com/some-ES-stats-at-yfrog-com-td3759891.html\nDouane : Gestion des contr&amp;#xF4;les r&amp;#xE9;alis&amp;#xE9;s par les douaniers (500 000 documents index&amp;#xE9;s dont 50% de documents oOo, pdf, &amp;#x2026;). Moteur sur les d&amp;#xE9;clarations de douane est en cours : un volume de plus 100 millions de marchandises &amp;#xE0; traiter.\nRejoignez le mouvement ! Essayez et vous verrez &amp;#xE0; quel point c&amp;#x2019;est simple et efficace.\n\n
  • \n
  • \n
  • \n

×