Elasticsearch has been around a while, but it's been getting quite a bit of traction in the Drupal comminity since a couple of modules were provided. Lately there has also been a lot of chatter around using it with 'headless' or 'decoupled' Drupal sites.
You can either use ElasticSearch in a 'traditional' way - similar to how you would Solr to index your content - or alternatively you could actually store some of your data in Elasticsearch.
Storing data is Elasticsearch would generally be done if you were going for a 'headless' or 'decoupled' Drupal approach. For instance if you were only using Drupal as a content API, for editing/creating/managing the content, but using it in conjunction with other independant systems, eg. using AngularJS for the frontend.
If you want to store some of your data in Elasticsearch then check out these articles. They describe the sort of approach you would need to take & discuss whether you should take this route.
- Install and Integrate Elasticsearch with Drupal
- Using Drupal as Part of a Decoupled CMS
- Should you Decouple?
- Beyond Decoupling: The Inherent Virtues of an API
Alternatively, if all you want to do is use Elasticsearch to index your Drupal content via integration with a sites search API, then you could use one of the existing modules:
What is Elastic Search?
To quote wikipedia:
Elasticsearch is a search server based on Lucene. It provides a distributed, multitenant-capable full-text search engine with a RESTful web interface and schema-free JSON documents. Elasticsearch is developed in Java and is released as open source under the terms of the Apache License. Elasticsearch is the second most popular enterprise search engine.
Avid Drupal site builder & user for +9 years.