Elasticsearch

A presentation at BBL LittleBigCode (Private Event) in February 2022 in by David Pilato

Slide 1

Slide 1

Elastic Stack Overview Search. Observe. Protect.

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

The Elastic Platform Enterprise Search Observability Security Kibana Explore, Visualize, Engage Elasticsearch Store, Search, Analyze Integrations Connect, Collect, Alert Public cloud Hybrid On-premises

Slide 4

Slide 4

FILEBEAT MASTER (3) METRICBEAT PACKETBEAT WINGLOBEAT AUDITBEAT HEARTBEAT CUSTOM UI INGEST (X) Coordinating (X) DATA - HOT (X) FUNCTION BEAT KAFKA ELASTICSEARCH CLIENTS DATA - WARM (X) REDIS DATA STORE SOCIAL 4 WEB APIS SENSORS MESSAGING QUEUE WORKERS (2+) ALERTING (X) MACHINE LEARNING (2+) INSTANCES (X)

Slide 5

Slide 5

Slide 6

Slide 6

Slide 7

Slide 7

Slide 8

Slide 8

Une histoire d’ingestion — : : :

Baptiste Leduc Feb 11 13 00 UTC | 14 00 CET | 08 00 EST

Slide 9

Slide 9

Indexation au fil de l’eau de données relationnelles vers Elasticsearch avec Hibernate Search — : : :

Yoann Rodière Feb 11 13 30 UTC | 14 30 CET | 08 30 EST

Slide 10

Slide 10

Auto-complétion et auto-completions avec Elasticsearch — : : :

Lucian Precup Feb 11 14 00 UTC | 15 00 CET | 09 00 EST

Slide 11

Slide 11

Indexer des transcriptions de fichiers média — : : :

Aline Paponaud Mouhcine Boutinzer Feb 11 14 30 UTC | 15 30 CET | 09 30 EST

Slide 12

Slide 12

Catégorisation automatique avec Elasticsearch — : : :

Raed Ben Haj Gacem Feb 11 14 40 UTC | 15 40 CET | 09 40 EST

Slide 13

Slide 13

Les automates ont la parole — : : :

Benjamin Dauvissat Feb 11 14 50 UTC | 15 50 CET | 09 50 EST

Slide 14

Slide 14

Déployer et interconnecter 2 clusters GKE et Elastic Cloud — : : :

Nicolas Béjean Feb 11 15 00 UTC | 16 00 CET | 10 00 EST

Slide 15

Slide 15

Un moteur de recherche communautaire pour organiser Internet ? — : : :

Aline Paponaud Lucian Precup Feb 11 15 30 UTC | 16 30 CET | 10 30 EST

Slide 16

Slide 16

Keynote: The Past 10 Years Elastic — : : :

Shay Banon Simon Willnauer Uri Boness Steven Schuurman Feb 11 16 00 UTC | 17 00 CET | 11 00 EST

Slide 17

Slide 17

Keynote: The Present Who We Are — : : :

Leah Sutton Feb 11 16 25 UTC | 17 25 CET | 11 25 EST

Slide 18

Slide 18

Keynote: The Future What’s Next? — : : :

Shay Banon Feb 11 16 30 UTC | 17 30 CET | 11 30 EST

Slide 19

Slide 19

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 Doctolib’); INSERT INTO user VALUES (‘David David’, ‘Who is that guy?’); David 19

Slide 20

Slide 20

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 Doctolib’); INTO user VALUES (‘David David’, ‘Who is that guy?’); SELECT * FROM user WHERE name=”David”; Empty set (0,00 sec) David 20

Slide 21

Slide 21

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 Doctolib’); 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 Doctolib | | David David | Who is that guy? | +———————+———————————+ David 21

Slide 22

Slide 22

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 Doctolib’); 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 22

Slide 23

Slide 23

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 Doctolib’); 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 23

Slide 24

Slide 24

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 Doctolib’); 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 24

Slide 25

Slide 25

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 Doctolib’); 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 Doctolib | | David David | Who is that guy? | +———————+——————————————————————-+ David 25

Slide 26

Slide 26

Slide 27

Slide 27

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 Doctolib’); INTO user VALUES (‘David David’, ‘Who is that guy?’); SELECT * FROM user WHERE name LIKE “%Dadid%”; Empty set (0,00 sec) Dadid 27

Slide 28

Slide 28

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 Doctolib’); 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 Doctolib | | David David | Who is that guy? | +———————+———————————+ 28

Slide 29

Slide 29

Slide 30

Slide 30

User Interface 30

Slide 31

Slide 31

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

Slide 32

Slide 32

Demo time!

Slide 33

Slide 33

The Elastic Platform Enterprise Search Observability Security Kibana Explore, Visualize, Engage Elasticsearch Store, Search, Analyze Integrations Connect, Collect, Alert Public cloud Hybrid On-premises

Slide 34

Slide 34

Elastic Enterprise Search Enterprise Search Observability Security Kibana Explore, Visualize, Engage Elasticsearch Store, Search, Analyze Integrations Connect, Collect, Alert Public cloud Hybrid On-premises

Slide 35

Slide 35

ELASTIC ENTERPRISE SEARCH Search everything, anywhere Easily implement powerful, modern search experiences across your website, app, or digital workplace. Search it all, simply.

Slide 36

Slide 36

Elastic Observability Enterprise Search Observability Security Kibana Explore, Visualize, Engage Elasticsearch Store, Search, Analyze Integrations Connect, Collect, Alert Public cloud Hybrid On-premises

Slide 37

Slide 37

ELASTIC OBSERVABILITY Unified visibility across your entire ecosystem Bring your logs, metrics, and traces together into a single stack so you can monitor, detect, and react to events with speed.

Slide 38

Slide 38

Elastic Security Enterprise Search Observability Security Kibana Explore, Visualize, Engage Elasticsearch Store, Search, Analyze Integrations Connect, Collect, Alert Public cloud Hybrid On-premises

Slide 39

Slide 39

ELASTIC SECURITY Security how it should be: open Elastic Security integrates endpoint security and SIEM to give you prevention, collection, detection, and response capabilities for unified protection across your infrastructure.

Slide 40

Slide 40

Slide 41

Slide 41

Searching for Rides

Slide 42

Slide 42

Searching for Restaurants

Slide 43

Slide 43

Searching for Love

Slide 44

Slide 44

Slide 45

Slide 45

Slide 46

Slide 46

ElasticFR https://community.elastic.co/france @elasticfr discuss.elastic.co