Schemaless and document-oriented
- Elastic search doesnot impose a strict structure on your data, you can store any json documents.
- JSON documents are first class citizens of Elastic search (as opposed to rows and columns in the Relational database).
- A document in Elastic Search is roughly equivalent to record in relational database table
- Traditional databases require a schema to defined beforehand
- JSON documents naturally support dynamic data
//first record
{
"name": "John Doe",
"email": "johndoe@gmail.com",
"address": {
"city": "New York"
}
}
//second record
{
"email": "jane_doe@gmail.com",
"age": 45,
"address": {
"country": "USA",
"zipcode": "10010"
}
}
Searching capabilities
- The core strength of Elastic Search lies in its text-processing capabilities.
- Elastic search is great at searching especially full-text searches
- Full text search means searching through all the terms of the documents available in database, This requires entire content of all documents to be parsed and stored before hand.
- When you want to perform a search similar to Google search on your own data, Elastic search is your best bet, you can index emails, text documents, pdf files, web pages
- At a high level, Elastic search breaks up text data into terms and makes every term searchable by building lucene indexes
Analytics
- Elastic search supports wide variety of aggregations for analytics
Rich Client Library Support and REST API
- Elastic search has a very rich client library support to access from languages like JAVA, C#, python, JavaScript, Ruby & more
- Elastic search has a very rich REST API (Representational state transfer) which works on HTTP protocol.
Easy to Operate and easy to Scale
- Elastic search can run on single node and easily scale out to hunderds of nodes
- Unlike most traditional database that only allow vertical scaling, Elastic search can be scaled horizontally
- The client application doesn’t need to change wheter it is running against a single node or a hundred node cluster
- Elastic search clusters can keep running even when there are hardware failures such as node failure, network failure etc i.e. Elastic search is designed to scale and is fault-tolerant
Installing Elastic Search
- Refer Here to download elastic search
- Refer Here for the installation of elastic search
- For understanding features of elastic search lets try to run elastic search locally
- Unzip the downloaded file and do the following

- Run the command
curl http://localhost:9200?prettyfrom git bash
- Open browser and navigate to http://localhost:9200?pretty

Install Kibana
- Download kibana zip from Refer Here
- Extract the file and RUN
bin\kibana.bat
- Now open http://localhost:5601 in your browser

Lab Setup
- Installing necessary softwares on Windows Refer Here
- Install Windows Terminal Refer Here
