How to

How to add powerful (Elastic)search to existing SQL applications

Elasticsearch has a lot of strengths (speed, scale, relevance), but one of its most important strengths is its flexibility to be added to existing environments without the need for any sort of architectural overhaul. If you are a sysadmin (dev, sec, ops, etc.), you know just how appealing this is. So many legacy systems remain in place not because they are perfect, but because replacing them would cost time and money that you don't have. With the Elastic Stack, you can easily augment your existing systems in a variety of ways (search, analytics, security, and more) without having to tear down or build up.

Over the years, I've given a talk that showcases that flexibility of Elasticsearch to be added to existing environments. You may have even seen some variant of it yourself somewhere in the world. Most recently, I delivered it virtually for Codemotion's Dev Lunch Box.

So if you did not attend the session yet, here are the videos for you to watch at your leisure. If you're reading this in the far future, as of publication date, we're in the middle of the social distancing, so live coding sessions are currently considered "leisure" videos. Although, for some of us they've always been leisure.

Advanced Elasticsearch for your Legacy application

In this five part series, I will start from a Spring Boot/MySQL based application and will add a complete integration of Elasticsearch. Everything in these videos is available in my legacy-search repo, so please try it yourself at home. You can either spin a free trial of Elastic Cloud or deploy locally.

If you'd like to skip a chapter, you can use the playlist menu in the top right corner of the video.

  1. Connect to Elasticsearch with the Java High Level Rest Client
  2. Perform CRUD operations with Elasticsearch in Java and Bulk API
  3. Search with Elasticsearch in Java and deal with typos
  4. Create the ideal mapping for our use case
  5. Build analytics and faceted navigation with Elasticsearch in Java and use Kibana for some reports