Elasticsearch: what it is and how it works
Elasticsearch is a Lucene-based search engine. Lucene is a free and open source API for information retrieval and is widely used for creating search engines.
Through HTTP web interfaces and JSON documents, Elasticsearch allows to interact in a simple way with its core and perform very effective full-text searches.
The Elasticsearch mission started with Shay Banon’s conviction (Shay Banon is the founder): “Search is something that any application should have”. Based on this belief, Banon worked for years bringing his company to the top of the global IT scene.
Elasticsearch: a distributed and scalable system
Today Elasticsearch is a distributed and horizontally scalable system, based on nodes which are divided into clusters. Communication to and from the clusters is done through REST APIs that use HTTP. Customers’ applications which use this project, can be written in any language. The underlying architecture is obviously invisible to the user, who perceives everything as a single entity, although the distributed nature of the stack makes sure that processes are interconnected between through a continuous exchange of messages between the nodes. Nodes have precise tasks that divide in autonomy, depending on the settings given to the various load balancers. If the resources set at the start-up are not sufficient, Elasticsearch can “expand” its processing capacity by activating new nodes and creating new clusters, with total autonomy; hence its scalable nature.
Today, large companies use Elasticsearch, such as Blizzard for log analysis and NASA uses it to process data from the Rover Curiosity while walking on Mars in real time.
Elasticsearch can also be used for Big Data as it is a solution capable of handling large amounts of data and is perfect for companies that want to take their first steps in the future of Big Data.
Elasticsearch is not just a search engine
The Elasticsearch stack has the search engine and:
- Beats: a data shipper that moves data from machines to the other components of the stack;
- Logstash: parsing, transforms and prepares data;
- Kibana: interacts with Elasticsearch, producing analyses and displaying them on charts, tables and maps.