Introduction to Elasticsearch
Next blogs on Elasticsearch of this series:
Elasticsearch Installation and Configuration on Ubuntu 14.04
Elasticsearch REST APIs
Basics of Data Search in Elasticsearch
Log analysis with Elastic stack
Elasticsearch is a full-text search engine that can be used as a NoSQL database and can be used as an analytics engine. It is easy to scale, schema-less, near real-time and provides a restful interface for different operations. It is schema-less and uses an inverted index for data storage. Elasticsearch is created in Java and built on top of Lucene. We can explain Elasticsearch by following terms:
- Full-text Search Engine
- NoSQL Database
- Analytics Engine
- Easy to Scale
- RESTFul interface
- Schema-less
- Inverted Index
- Near Real-Time
- Elastic Stack
These are the characteristics of Elasticsearch and we can use them in the following ways:
- Elasticsearch as the primary backend for your website.
- Adding Elasticsearch to an existing system running through an existing data source.
- Use Elasticsearch for monitoring and analysis of the existing application without affecting the behavior of the current application.
Elasticsearch can be used in different applications as it has different language clients through which we can integrate it in any application. Some of the clients are as follows:
- Java
- PHP
- Perl
- Python
- .NET
- Ruby
- JavaScript
- Groovy
We can have different use cases to use Elasticsearch like:
- Online Web Store
- Price Alerting Platform
- Analytics / Business-intelligence
- Central Log Management
- Fraud Management
- System Monitoring
- E-commerce Search Solutions
- Visualizing Data
There are the following components of Elasticsearch:
Cluster:
Node:
Index:
An index is a collection of documents that have somewhat similar characteristics. For example, you can have an index for customer data, another index for a product catalog, and yet another index for order data. It is a logical namespace to store similar types of documents.
Document:
Shard:
Just take an example here: Let's say we have an Elasticsearch cluster with two nodes, now we want to index a data set with 2 primary shards and one replica shard. On two nodes data will be stored in a way that we are not going to loose any data, in case one machine fails. Please refer to the below diagram:
In the above diagram, P1 and P2 are primary shards while R1 and R2 are replica shards. Now in any node we have complete data so even if one machine goes down, we can still fetch the complete set of data.
Other Blogs on Elastic Stack:
Introduction to Elasticsearch
Elasticsearch Installation and Configuration on Ubuntu 14.04
Log analysis with Elastic stack
Elasticsearch Rest API
Basics of Data Search in Elasticsearch
Elasticsearch Rest API
Wildcard and Boolean Search in Elasticsearch
Configure Logstash to push MySQL data into Elasticsearch
Metrics Aggregation in Elasticsearch
Bucket Aggregation in Elasticsearch
How to create Elasticsearch Cluster
If you found this article interesting, then you can explore “Mastering Kibana 6.0”, “Kibana 7 Quick Start Guide”, “Learning Kibana 7”, and “Elasticsearch 7 Quick Start Guide” books to get more insight about Elastic Stack, how to perform data analysis, and how you can create dashboards for key performance indicators using Kibana.
You can also follow me on:
- LinkedIn: https://www.linkedin.com/in/anubioinfo/
- Twitter: https://twitter.com/anu4udilse
- Medium: https://anubioinfo.medium.com
Comments (2)
jitender yadav
Apr 15, 2018, 11:26:01 AM
Sir, can you please elaborate all terms like cluster, node, index, type, document, shard in different blogs ..
Anurag Srivastava
Apr 15, 2018, 3:15:30 PM
Sure I will do that wait for couple of days as I am little busy for a presentation.
Leave a comment
Related Blogs
Introduction to Logstash
Dec 20, 2019, 11:38:31 AM | Anurag Srivastava
Importing MongoDB data into Elasticsearch
Mar 9, 2019, 8:20:38 AM | Anurag Srivastava
Importing MySQL data into Elasticsearch
Feb 9, 2019, 12:06:18 PM | Anurag Srivastava
Snapshot and Restore Elasticsearch Indices
Sep 16, 2019, 5:55:06 AM | Anurag Srivastava
Log analysis with Elastic stack
Jan 31, 2018, 6:11:29 AM | Anurag Srivastava
Creating Elasticsearch Cluster
Apr 6, 2019, 8:41:41 PM | Anurag Srivastava
Top Blogs
Configure SonarQube Scanner with Jenkins
Jun 21, 2018, 4:58:11 AM | Anurag Srivastava
Execute Commands on Remote Machines using sshpass
Jul 16, 2018, 5:00:02 PM | Anurag Srivastava
Importing MongoDB data into Elasticsearch
Mar 9, 2019, 8:20:38 AM | Anurag Srivastava
Importing MySQL data into Elasticsearch
Feb 9, 2019, 12:06:18 PM | Anurag Srivastava
Configure Jenkins for Automated Code Deployment
Jun 13, 2018, 3:44:01 PM | Anurag Srivastava
Deploying Angular code using Python script
Jun 26, 2018, 4:50:18 PM | Anurag Srivastava