What Is ElasticSearch
Elastic is an open-source search engine built on top of Apache Lucene, a complete text search engine library. Lucene is plausibly the most advanced, high performance, and perfectly featured search engine library in existence today.
Lucene is just a library. To leverage its power a user, need to work in Java and has to integrate Lucene directly with the user’s application.
Elasticsearch is also written in Java and uses Lucene internally for its indexing and searching, but its main aim is to make full-text search easily by hiding the difficulties of Lucene behind a simple, coherent, and RESTful API.
Elasticsearch is much more than just Lucene. It can also be described as follows.
- A distributed real-time document is stored where every field is indexed and searchable.
- It is a distributed search engine with real-time analytics.
- Elasticsearch is capable of scaling hundreds of servers and petabytes of structured and unstructured data.
- Elasticsearch can also be used as a replacement of document stores like MongoDB and RavenDB.
- Elasticsearch is one of the most popular enterprise search engine which is currently being used by many organizations such as Wikipedia, The Guardian, StakOverflow GitHub and much more.
THE KEY CONCEPTS OF ELASTICSEARCH
Node: Node refers to a single running instance of Elasticsearch. Single physical and virtual server accommodate multiple nodes depending upon the capabilities of their physical resources such as RAM, storage, and processing power.
Cluster: It is an assembly of one or more number of nodes. The cluster provides collective indexing and search capabilities across all the nodes for complete data.
Index: Index is a collection of different type of documents and document properties.
Mapping: It is a collection of documents which shares common fields present in the same index
Replicas: Elasticsearch allows the user to create replicas of their own indexes and shards. Replication not only increases the availability of data but also in the case of failure, it also improves the performance of searching by carrying out a parallel search operation in these replicas.
THE POSITIVES OF ELASTICSEARCH
- Elasticsearch is developed in Java, which makes it compatible with almost every platform.
- Elasticsearch is real time.
- Elasticsearch is distributed, which makes it easy to scale and integrate into any organization.
- In Elasticsearch, creating back-ups are easy by using the concept of gateway
- Elasticsearch supports almost every document type except those that do not support text rendering.
THE NEGATIVES OF ELASTICSEARCH
- Elasticsearch does not contain multi-language support in terms of handling request and response data, unlike Apache Solr.
- Elasticsearch also have a complication of split-brain situations in some rare cases.
Elasticsearch is both simple and a complex product. In this article, we have learned what is Elasticsearch and the major advantages and disadvantages. We hope, this article has given you a better understanding and more importantly, inspired you to further experiment with the rest of its great features!