Elasticsearch is a distributed open-source data search and analysis engine based on Apache Lucene and developed in Java. The project began as a scalable version of the open-source Lucene search framework. The ability to horizontally extend Lucene indices was then added.
This tool allows storing, searching, and analyzing large volumes of data quickly and in near real-time. Responses are transmitted in milliseconds. This speed is because Elasticsearch searches an index rather than searching text directly. Its structure is based on documents rather than tables and schemas. REST APIs are used to store and explore data. In short, Elasticsearch is a server that can handle JSON queries and return JSON data.How does Elasticsearch work?
Elasticsearch works on several basic concepts. Here are its main components. Documents are the basic unit of information that can be indexed in Elasticsearch. It is expressed in JSON format, which is the global data interchange format. A document can be compared to a row in a relational database, representing a specific entity. However, this document is not limited to text and can be any type of structured data encoded in JSON. It can be numbers, lines of code, or dates… each document has a unique identifier and a data type describing the category of the entity it contains. An index is a collection of documents with similar characteristics. It is the highest level of an entity on which it is possible to perform queries in Elasticsearch. You can compare the index to a database. All documents in an index are linked by category. The index is identified by a name so that it can be referred to during search or analysis operations. In reality, an Elasticsearch index is an inverted index. This mechanism is the source of all search engines and associates a mapping of content to its location in a document or set of documents. This hashmap-like data structure allows you to go from a word to a document. An Elasticsearch cluster is a group of interconnected instances. It allows tasks, search, or indexing to be distributed between nodes. A node is an individual server, stores data and contributes to the search and indexing capabilities of the cluster. A node can be configured in different ways.
The Master Node controls the Elasticsearch cluster and takes responsibility for cluster-wide operations such as creating or deleting an index and adding or removing nodes.
A Data Node stores data and performs data operations such as search and aggregation, while a Client Node forwards cluster queries to the Master Node and data queries to the Data Nodes.
Indexes can be subdivided into chunks called “shards”. Each fragment is an independent, fully functional index that can be hosted on any node within a cluster.
By distributing the documents in an index across multiple fragments and distributing those fragments across multiple nodes, Elasticsearch provides redundancy to protect against hardware failure while increasing query capacity as nodes are added to the cluster.
Finally, fragments can be copied to generate “replicas. Again, the goal is to protect data from hardware failure and increase the ability to respond to read requests.
Elastic Slack
Elastic Slack is a complete ecosystem of open-source tools for data ingestion, enrichment, storage, analysis, and visualization. In addition to Elasticsearch, other software includes Logstash, Kibana, and Beats. The Kibana data management and visualization tool deliver real-time histograms, charts, or maps. It allows you to visualize Elasticsearch data in real-time, and to choose visualizations thanks to a very intuitive interface. Logstash aggregates and processes data sent to Elasticsearch. This open-source data processing pipeline is capable of ingesting data from multiple sources, transforming it, and transferring it. Data can be transformed regardless of its format. Finally, Beats brings together several “Data Shipping” agents to send data from thousands of machines and systems to Logstash or Elasticsearch. This tool is very useful for assembling data.


























