Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Paris JUG: Un moteur de recherche NoSQL pour chercher^H^H^H^H^H^H^H^H trouver...

Elastic Co
September 13, 2016

Paris JUG: Un moteur de recherche NoSQL pour chercher^H^H^H^H^H^H^H^H trouver...

Vous cherchez toujours dans vos données avec des SELECT * FROM person WHERE name like '%david%pilato%" ?

Au delà des performances obtenues, êtes-vous certain de renvoyer les résultats les plus pertinents pour vos utilisateurs d'abord ?

Venez découvrir comment un moteur de recherche vous aidera à répondre aux questions posées par vos utilisateurs, de manière pertinente et efficace, tout en apportant des fonctionnalités d'analyse des résultats et ce, quelque soit le volume...

Talk given at Paris JUG: https://www.parisjug.org/xwiki/wiki/oldversion/view/Meeting/20160913

Elastic Co

September 13, 2016
Tweet

More Decks by Elastic Co

Other Decks in Technology

Transcript

  1. 5 The only Elasticsearch as a Service offering powered by

    the creators of the Elastic Stack • Always runs on the latest software • One-click to scale/upgrade with no downtime • Free Kibana and backups every 30 minutes • Dedicated, SLA-based support • Easily add X-Pack features: security (Shield), alerting (Watcher), and monitoring (Marvel) • Pricing starts at $45 a month infom ercial
  2. 6

  3. Some data 7 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 Docker'); INSERT INTO user VALUES ('David David', 'Who is that guy?');
  4. Search like 9 SELECT * FROM user WHERE name LIKE

    "%David%"; +--------------+----------------------+ | name | comments | +--------------+----------------------+ | David Pilato | Developer at elastic | | David Gageot | Engineer at Docker | | David David | Who is that guy? | +--------------+----------------------+
  5. Search in two fields 10 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 Docker | | David David | Who is that guy? | +--------------+---------------------------------------------+ 4 rows in set (0,00 sec)
  6. 11

  7. 12

  8. Search with typos 13 SELECT * FROM user WHERE name

    LIKE "%Dadid%"; Empty set (0,00 sec)
  9. Search with typos 14 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 Docker | | David David | Who is that guy? | +--------------+----------------------+
  10. 15

  11. ‹#› Methionylthreonylthreonylglutaminylarginyltyrosylglutamylserylleucylphenylalanylalanylglutaminylleuc yllysylglutamylarginyllysylglutamylglycylalanylphenylalanylvalylprolylphenylalanylvalylthreonylleucylgl ycylaspartylprolylglycylisoleucylglutamylglutaminylserylleucyllysylisoleucylaspartylthreonylleucylisoleu cylglutamylalanylglycylalanylaspartylalanylleucylglutamylleucylglycylisoleucylprolylphenylalanylseryla spartylprolylleucylalanylaspartylglycylprolylthreonylisoleucylglutaminylasparaginylalanylthreonylleucyl arginylalanylphenylalanylalanylalanylglycylvalylthreonylprolylalanylglutaminylcysteinylphenylalanylglu tamylmethionylleucylalanylleucylisoleucylarginylglutaminyllysylhistidylprolylthreonylisoleucylprolylisol eucylglycylleucylleucylmethionyltyrosylalanylasparaginylleucylvalylphenylalanylasparaginyllysylglycyli soleucylaspartylglutamylphenylalanyltyrosylalanylglutaminylcysteinylglutamyllysylvalylglycylvalylaspa

    rtylserylvalylleucylvalylalanylaspartylvalylprolylvalylglutaminylglutamylserylalanylprolylphenylalanylarg inylglutaminylalanylalanylleucylarginylhistidylasparaginylvalylalanylprolylisoleucylphenylalanylisoleuc ylcysteinylprolylprolylaspartylalanylaspartylaspartylaspartylleucylleucylarginylglutaminylisoleucylalany lseryltyrosylglycylarginylglycyltyrosylthreonyltyrosylleucylleucylserylarginylalanylglycylvalylthreonylgly cylalanylglutamylasparaginylarginylalanylalanylleucylprolylleucylasparaginylhistidylleucylvalylalanylly sylleucyllysylglutamyltyrosylasparaginylalanylalanylprolylprolylleucylglutaminylglycylphenylalanylglycy lisoleucylserylalanylprolylaspartylglutaminylvalyllysylalanylalanylisoleucylaspartylalanylglycylalanylala nylglycylalanylisoleucylserylglycylserylalanylisoleucylvalyllysylisoleucylisoleucylglutamylglutaminylhist idylasparaginylisoleucylglutamylprolylglutamyllysylmethionylleucylalanylalanylleucyllysylvalylphenylal anylvalylglutaminylprolylmethionyllysylalanylalanylthreonylarginylacetylseryltyrosylserylisoleucylthreo nylserylprolylserylglutaminylphenylalanylvalylphenylalanylleucylserylserylvalyltryptophylalanylaspartyl prolylisoleucylglutamylleucylleucylasparaginylvalylcysteinylthreonylserylserylleucylglycylasparaginylgl utaminylphenylalanylglutaminylthreonylglutaminylglutaminylalanylarginylthreonylthreonylglutaminylval ylglutaminylglutaminylphenylalanylserylglutaminylvalyltryptophyllysylprolylphenylalanylprolylglutaminy
  12. 17

  13. Search for terms 18 SELECT * FROM user WHERE name

    LIKE "%David Pilato%"; +--------------+----------------------+ | name | comments | +--------------+----------------------+ | David Pilato | Developer at elastic | +--------------+----------------------+
  14. Search for inverted terms 19 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)
  15. Search for inverted terms 20 SELECT * FROM user WHERE

    name LIKE "%David%" AND name LIKE "%Pilato%"; +--------------+----------------------+ | name | comments | +--------------+----------------------+ | David Pilato | Developer at elastic | +--------------+----------------------+
  16. Synonyms 22 SELECT * FROM user WHERE comments LIKE "%Engineer%";

    +--------------+----------------------+ | name | comments | +--------------+----------------------+ | David Gageot | Engineer at Docker | +--------------+----------------------+
  17. Synonyms 23 SELECT * FROM user WHERE comments LIKE "%Developer%"

    OR comments LIKE "%Engineer%"; +--------------+----------------------+ | name | comments | +--------------+----------------------+ | David Pilato | Developer at elastic | | David Gageot | Engineer at Docker | +--------------+----------------------+
  18. Search like within 1 000 000 000 records… 24 SELECT

    * FROM user WHERE name LIKE "%David%";
  19. ‹#› We need a search engine. Not a database with

    some search capabilities. David Pilato PARIS JUG, 13/09/2016
  20. 26

  21. 27