What is ElasticSearch?
Tags: beginners, tutorial, opensource, database
Published: 2022-09-13 08:20:20

We are going to talk about what is ElasticSearch, what kind of functionalities it provides and what kind of benefits can be get from this specific technology.
The structured data and semi-structured data is increasing at a huge pace, and that results in big data, and big data is the amount of data that cannot be stored in the conventional computers so we have to think about new strategies to handle huge amount of data, so that we can have some useful and effective insights from this data. 
Elastic Search is one of those things that can help us perform different type of actions on the text data or JSON or document based data. ElasticSearch provides many facilities to perform different types of the searches in the huge amount of the data. This includes the full text searches or tag searches or any other kind of searches such as token or noun kind of searches as well.
## History of ElasticSearch
The very first version of ElasticSearch was released in February, 2014. The latest version of ElasticSearch is the 8.0.0 and it was released in February, 2022. Starting from very basics ElasticSearch has come a long way with its optimized algorithms and other fault tolerance strategies as well.
## ElasticSearch as Stack
ElasticSearch is overall a stack that includes Kibana, Logstash and ElasticSearch, all these things combines to create the ElasticSearch stack, and each one of these have different kind of purpose to fill. For example the Kibana can be used to configure the ElasticSearch and Logstash can have all the logs of the ElasticSearch for examples how many API calls have been made, how many were successful and how many time each call took to be completed. Kibana is also a kind of dashboard and it can be customized as well.

![ElasticSearch as Stack](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/p9t2wxs2jq9zkt0ub4uj.png)

## Overview of ElasticSearch
ElasticSearch is the API that has some specific End-Points and using those End-Points we can perform different types of actions that includes creating different indices, querying the text, and applying different kind of conditions as well. Some of these End-Points can provide the facility to create a better option for the fault tolerance as well.
ElasticSearch provides the facility to apply different kind of aggregated functions as well, and those aggregated functions can help to do different kind of work on the text that includes the application of the different types of Machine Learning algorithms as well.
Tokenizing can provide the facility to run the object detection/subject detection and other kind of things.
## When to use ElasticSearch?
Now, as we know that what is the ElasticSearch and what kind of things we can do with it, so now we have to look at the reasons and motivation for the usage of the ElasticSearch and when should we take the action to implement it in the project.
1. Let's say that you have a huge amount of document database, and you want the facility to search the text in a rapid fast speed.
2. Let's say that you have an enterprise level application that contains different types of the data and you want to have a enterprise level database search.
3. Let's say that you have some huge amount of text data and you have to train a model on some very specific type of the properties of the text.
4. You have logs from a server and you are doing any kind of monitoring and you want to know that how much the server usage will be in the next 24 months.
5. You want to perform some specific types of searches in huge amount of logs data.
6. You want to monitor continuously the performance of the servers that you are managing.

![Sample Usecase](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/54wy55q6htkgjoadnwfd.png)

I have tried to provide a very basic introduction to the ElasticSearch and when we can use it. Due to it's very limited use cases it is not used commonly in the daily development. It is very important to know the need before implementing it, because setting the production environment itself is a challenge.