Elasticsearch

A presentation at Vitrine Technologique du Gouvernement du Québec (private event) in March 2019 in Quebec City, QC, Canada by David Pilato

Slide 1

Slide 1

Elastic Stack Overview The world’s most popular enterprise products for real-time search, logging, analytics, and more

Slide 2

Slide 2

Who? $ curl http://localhost:9200/speaker/_doc/dpilato { “nom” : “David Pilato”, “jobs” : [ { “boite” : “SRA Europe (SSII)”, “mission” : “bon à tout faire”, “date” : “1995” }, { “boite” : “SFR”, “mission” : “touche à tout”, “date” : “1997” }, { “boite” : “e-Brands / Vivendi”, “mission” : “chef de projets”, “date”: “2000” }, { “boite” : “DGDDI (douane)”, “mission” : “mouton à 5 pattes”, “date” : “2005” }, { “boite” : “IDEO Technologies”, “mission” : “CTO”, “date” : “2012” }, { “boite” : “elastic”, “mission” : “développeur”, “date” : “2013” } ], “passions” : [ “famille”, “job”, “deejay” ], “blog” : “http://david.pilato.fr/”, “twitter” : [ “@dadoonet”, “@elasticfr” ], “email” : “david@pilato.fr” } !2

Slide 3

Slide 3

Elastic Stack SOLUTIONS Elastic Stack Kibana Visualize & Manage Elasticsearch Store, Search, & Analyze Beats APM Logstash SaaS Elastic Cloud SELF-MANAGED Elastic Cloud Enterprise Standalone Ingest

Slide 4

Slide 4

Deployment in the Enterprise Beats Elasticsearch Custom UI FILEBEAT HEARTBEAT WINGLOGBEAT Master (3) Ingest (X) Logstash METRICBEAT Coordinating (X) PACKETBEAT Elasticsearch Clients AUDITBEAT Data – Hot (X) Kafka Kibana Data – Warm (X) Data store Web APIs Redis Workers (2+) Alerting (X) Messaging Queue Social Machine Learning (2+) Sensors LDAP ES-Hadoop !4 AD Authentication SSO Notification

Slide 5

Slide 5

!5 https://www.elastic.co/fr/subscriptions

Slide 6

Slide 6

Services at a Glance Elastic Training Certification • Immersive learning experience • Performance-based exam • Solution-based curriculum • Solve real-world tasks, in realtime • Flexible ways-to-train • Remote, secure testing People Strategy !6 Elastic Consulting • Expert services focused on your business goals • Phased-based packages • Product expertise Project Strategy

Slide 7

Slide 7

A typical search implementation… CREATE TABLE user ( name VARCHAR(100), comments VARCHAR(1000) ); INSERT INTO user VALUES (‘David Pilato’, ‘Developer at elastic’); INSERT INTO user VALUES (‘Malloum Laya’, ‘Worked with David at french customs service’); INSERT INTO user VALUES (‘David Gageot’, ‘Engineer at Google’); INSERT INTO user VALUES (‘David David’, ‘Who is that guy?’); David !7

Slide 8

Slide 8

Search on term INSERT INSERT french INSERT INSERT INTO user VALUES (‘David Pilato’, ‘Developer at elastic’); INTO user VALUES (‘Malloum Laya’, ‘Worked with David at customs service’); INTO user VALUES (‘David Gageot’, ‘Engineer at Google’); INTO user VALUES (‘David David’, ‘Who is that guy?’); SELECT * FROM user WHERE name=”David”; Empty set (0,00 sec) David !8

Slide 9

Slide 9

Search like INSERT INSERT french INSERT INSERT INTO user VALUES (‘David Pilato’, ‘Developer at elastic’); INTO user VALUES (‘Malloum Laya’, ‘Worked with David at customs service’); INTO user VALUES (‘David Gageot’, ‘Engineer at Google’); INTO user VALUES (‘David David’, ‘Who is that guy?’); SELECT * FROM user WHERE name LIKE “%David%”; +———————+———————————+ | name | comments | +———————+———————————+ | David Pilato | Developer at elastic | | David Gageot | Engineer at Google | | David David | Who is that guy? | +———————+———————————+ David !9

Slide 10

Slide 10

Search for terms INSERT INSERT french INSERT INSERT INTO user VALUES (‘David Pilato’, ‘Developer at elastic’); INTO user VALUES (‘Malloum Laya’, ‘Worked with David at customs service’); INTO user VALUES (‘David Gageot’, ‘Engineer at Google’); INTO user VALUES (‘David David’, ‘Who is that guy?’); SELECT * FROM user WHERE name LIKE “%David Pilato%”; +———————+———————————+ | name | comments | +———————+———————————+ | David Pilato | Developer at elastic | +———————+———————————+ David Pilato !10

Slide 11

Slide 11

Search with inverted terms INSERT INSERT french INSERT INSERT INTO user VALUES (‘David Pilato’, ‘Developer at elastic’); INTO user VALUES (‘Malloum Laya’, ‘Worked with David at customs service’); INTO user VALUES (‘David Gageot’, ‘Engineer at Google’); INTO user VALUES (‘David David’, ‘Who is that guy?’); SELECT * FROM user WHERE name LIKE “%Pilato David%”; Empty set (0,00 sec) SELECT * FROM user WHERE name LIKE “%Pilato%David%”; Empty set (0,00 sec) Pilato David !11

Slide 12

Slide 12

Search for terms INSERT INSERT french INSERT INSERT INTO user VALUES (‘David Pilato’, ‘Developer at elastic’); INTO user VALUES (‘Malloum Laya’, ‘Worked with David at customs service’); INTO user VALUES (‘David Gageot’, ‘Engineer at Google’); INTO user VALUES (‘David David’, ‘Who is that guy?’); SELECT * FROM user WHERE name LIKE “%David%” AND name LIKE “%Pilato%”; +———————+———————————+ | name | comments | +———————+———————————+ | David Pilato | Developer at elastic | +———————+———————————+ Pilato David !12

Slide 13

Slide 13

Search in two fields INSERT INSERT french INSERT INSERT INTO user VALUES (‘David Pilato’, ‘Developer at elastic’); INTO user VALUES (‘Malloum Laya’, ‘Worked with David at customs service’); INTO user VALUES (‘David Gageot’, ‘Engineer at Google’); INTO user VALUES (‘David David’, ‘Who is that guy?’); SELECT * FROM user WHERE name LIKE “%David%” OR comments LIKE “%David%”; +———————+——————————————————————-+ | name | comments | +———————+——————————————————————-+ | David Pilato | Developer at elastic | | Malloum Laya | Worked with David at french customs service | | David Gageot | Engineer at Google | | David David | Who is that guy? | +———————+——————————————————————-+ David !13

Slide 14

Slide 14

Slide 15

Slide 15

Search with typos INSERT INSERT french INSERT INSERT INTO user VALUES (‘David Pilato’, ‘Developer at elastic’); INTO user VALUES (‘Malloum Laya’, ‘Worked with David at customs service’); INTO user VALUES (‘David Gageot’, ‘Engineer at Google’); INTO user VALUES (‘David David’, ‘Who is that guy?’); SELECT * FROM user WHERE name LIKE “%Dadid%”; Empty set (0,00 sec) Dadid !15

Slide 16

Slide 16

Search with typos INSERT INSERT french INSERT INSERT INTO user VALUES (‘David Pilato’, ‘Developer at elastic’); INTO user VALUES (‘Malloum Laya’, ‘Worked with David at customs service’); INTO user VALUES (‘David Gageot’, ‘Engineer at Google’); INTO user VALUES (‘David David’, ‘Who is that guy?’); SELECT * FROM user WHERE name LIKE “%adid%” OR name LIKE “%D_did%” OR name LIKE “%Da_id%” OR name LIKE “%Dad_d%” OR name LIKE “%Dadi%”; +———————+———————————+ | name | comments | +———————+———————————+ | David Pilato | Developer at elastic | | David Gageot | Engineer at Google | | David David | Who is that guy? | +———————+———————————+ !16

Slide 17

Slide 17

Slide 18

Slide 18

User Interface !18

Slide 19

Slide 19

Search engine? Moteur d’indexation de documents Moteur de recherche dans les index !19

Slide 20

Slide 20

Demo time! !20

Slide 21

Slide 21

!21

Slide 22

Slide 22

Slide 23

Slide 23

!23

Slide 24

Slide 24

!24

Slide 25

Slide 25

!25

Slide 26

Slide 26

Slide 27

Slide 27

elasticfr @elasticfr discuss.elastic.co