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

Advanced search for your legacy application

Advanced search for your legacy application

Devoxx UK 2014

How do you mix SQL and NoSQL worlds without starting a messy revolution?

This live coding talk will show you how to add Elasticsearch to your legacy application without changing all your current development habits. Your application will have suddenly have advanced search features, all without the need to write complex SQL code!
David will start from a Spring, Hibernate and Postgresql based application and will add a complete integration of Elasticsearch, all live from the stage during his presentation.

098332e9d988080a9057816f84d668f7?s=128

Elasticsearch Inc

June 12, 2014
Tweet

More Decks by Elasticsearch Inc

Other Decks in Programming

Transcript

  1. @dadoonet #elasticsearch advanced search for your legacy application David Pilato

    Technical advocate! ! elasticsearch. @dadoonet
  2. @dadoonet #elasticsearch our use case

  3. @dadoonet #elasticsearch our legacy platform DATABASE SQL WEB APP HTTP

    / REST JDBC
  4. @dadoonet #elasticsearch our legacy application WEB APP HTTP / REST

    JDBC SERVICE LAYER DAO LAYER WEB SERVICE LAYER DOMAIN LAYER
  5. @dadoonet #elasticsearch JAVA BEANS our legacy domain

  6. @dadoonet #elasticsearch our legacy database DATABASE SQL

  7. @YourTwitterHandle @dadoonet #elasticsearch D em o $ git clone https://github.com/dadoonet/legacy-search.git!

    $ git checkout 00-legacy! $ mvn clean install jetty:run
  8. @dadoonet #elasticsearch connecting with our app architecture

  9. @dadoonet #elasticsearch JSON document design PUT /person/person/1 { "name":"Joe Pink",

    "dateOfBirth":"1971-12-26", "address_id":"2", "marketing_id":"3" } PUT /person/address/2 { "city":"Paris", "country":"France" } PUT /person/marketing/3 { "cars":1000, "food":1500 }
  10. @dadoonet #elasticsearch JSON document design PUT /person/person/1 { "name":"Joe Pink",

    "dateOfBirth":"1971-12-26", "address":{ "city":"Paris", "country":"France" }, "marketing":{ "cars":1000, "food":1500 } }
  11. @dadoonet #elasticsearch using an ETL ETL DATABASE SQL WEB APP

    HTTP / REST JDBC ELASTICSEARCH REST / JSON
  12. @dadoonet #elasticsearch elasticsearch rivers JDBC River

  13. @dadoonet #elasticsearch JDBC river ETL DATABASE SQL WEB APP HTTP

    / REST JDBC ELASTICSEARCH REST / JSON SQL JSON
  14. @dadoonet #elasticsearch JDBC river DATABASE SQL WEB APP HTTP /

    REST JDBC ELASTICSEARCH REST / JSON SQL
  15. @dadoonet #elasticsearch

  16. @dadoonet #elasticsearch Do It Yourself direct connection

  17. @dadoonet #elasticsearch direct connection DATABASE SQL ELASTICSEARCH REST / JSON

    WEB APP HTTP / REST JDBC ES-CLIENT
  18. @YourTwitterHandle @dadoonet #elasticsearch D em o $ git checkout 01-direct!

    $ git checkout 02-bulk! $ git checkout 03-mapping! $ git checkout 04-aggs! $ git checkout 05-compute! $ mvn clean install jetty:run! $ cat README.markdown
  19. @dadoonet #elasticsearch synchronous vs asynchronous

  20. @dadoonet #elasticsearch using brokers DATABASE SQL ELASTICSEARCH REST / JSON

    WEB APP HTTP / REST JDBC ES-CLIENT
  21. @dadoonet #elasticsearch using brokers DATABASE SQL ELASTICSEARCH REST / JSON

    WEB APP HTTP / REST JDBC ES-CLIENT
  22. @dadoonet #elasticsearch using brokers DATABASE SQL ELASTICSEARCH REST / JSON

    WEB APP HTTP / REST JDBC ES-CLIENT
  23. None
  24. None
  25. @YourTwitterHandle #DVXFR14{session hashtag} @dadoonet #elasticsearch Q & A David Pilato

    Technical advocate! ! elasticsearch. @dadoonet http://elasticsearch.com/support/ jobs@elasticsearch.com