Why choose ElasticSearch?

Finally Phase 1 of my product is ready and deployed for UAT, so thought of celebrating it by writing about one of my favorite topic – ElasticSearch. A lot of time I’m asked why to choose ElasticSearch for one’s search needs. So I thought why not answer it once and for all.

What is ElasticSearch

ElasticSearch is a distributed search & analytical engine built on top of Lucene. It supports multi-tenancy out of the box. It supports JSON and hence is schema free. Supports Restful API and is open source. Click here for more info

Why ElasticSearch?

In this post I’m not really comparing ElasticSearch with Solr or any other Search & Analysis technology but am listing down salient points offered by ElasticSearch.

So moving on, at my last organization I was tasked to create a unified Search solution for the whole platform. So this post really lists down my reasons to choose ElasticSearch.

  1. Distributed computing
    ElasticSearch was built grounds up keeping with distributed computing in mind and not an afterthought. This makes it easily scalable. Creating a cluster, adding more nodes, shards, master selection etc. is very easy.
  2. High availability
    ElasticSearch handles tracking node addition or failure automatically, new master node selection and data updates across all nodes. All this ensures ElasticSearch cluster is highly available and data is accessible.
  3. Supports Multitenancy
    ElasticSearch also supports multitnenancy out of the box. Multiple indexes serving as different tenants can be created in a single cluster or node.
  4. Search Capabilities
    ElasticSearch is built on top of Lucene and it unleashes all its capabilities like accurate and efficient search algorithms, ranking search results, multiple query types such as phrase queries, wildcard queries, range queries, etc.
  5. Powerful Query Language
    ElasticSearch has a very powerful & flexible query language called Query DSL (Domain Specific Language). Using Query DSL we can create really complex queries to retrieving and filtering data.
  6. JSON Support
    All Data is indexed as JSON. ES automatically detects the structure and indexes the data accordingly. It supports nested JSON entities as well. Although it supports custom mapping but you do not need any specific mapping to get started, ES does everything for you.
  7. Developer support
    ElasticSearch has Restful API which support all (I did not come across any while building my search solution) of the action. Also, most of the prominent development languages have native libraries to interact with ElasticSearch. For example .Net has NEST & ElasticSearch.Net clients. Click here for all the supported languages

Happy Learning!!!

P.S. For any errata/suggestions/comments/questions please use the comments section below

Leave a Reply

Your email address will not be published. Required fields are marked *


You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>