Updated May 2021
Elasticsearch is a distributed search and analytics engine. It is built on top of Apache Lucene.
Elasticsearch was first released in 2010 by the company now known as Elastic. It was originally completely open source, but recent license changes have limited its usage. More on that below.
Elasticsearch is part of a group of three technologies that work together and are known collectively as the ELK stack. This collection includes Elasticsearch, the database; Logstash, aggregation and processing tool; and Kibana, the dashboard tool.
Elasticsearch is popular for its speed and scalability and for the variety of data it can ingest. Data types can include text, numbers, and geospatial (map coordinates). Data can be either structured or unstructured.
Open Source License ... or is it?
Elasticsearch was formerly open source under the Apache 2.0 License. As of 2021, starting with the version 7.11 release, it is free under the Server Side Public License (SSPL) or Elastic License. Users have the option of which of the two licenses to apply, but the default is the Elastic License. This license includes the free use, modification, and redistribution of Elasticsearch.
However, the Elastic License is not an open source license and has three important limitations. Firstly, the products of your Elasticsearch architecture cannot be offered to others as a managed service. Secondly, license key functionality cannot be removed or obscured. Lastly, licensing and copyright cannot be removed or obscured. In other words, the free version of Elasticsearch cannot be white-labeled to sell as a service, such as a business analytics engine.
There is another option for using Elasticsearch technology completely open source, and that is through OpenSearch. Formerly referred to as Open Distro for Elasticsearch, OpenSearch is maintained by AWS. It is licensed under the Apache 2.0 License (ALv2).
OpenSearch is creating a fork from Elastic at version 7.10.2 for both Elasticsearch and Kibana. This fork includes OpenSearch and OpenSearch Dashboards, derived from Elasticsearch and Kibana, respectively. OpenSearch and its community will maintain and build additional functionality starting from this fork.
Use Cases - where to use Elasticsearch
Companies in wide ranging industries use Elasticsearch. From financial services to defense to entertainment and healthcare, it is the program of choice. Within those industries and others Elasticsearch is commonly used for these specific tasks:
- Analytics for security, logs, business intelligence
- Monitoring for performance
- Search for web, applications, and enterprise
Supported programing languages
Elasticsearch supports and has clients for many languages, including Python and Ruby.
Getting Help With Elasticsearch / the ELK Stack
The company Elastic offers managed services for their Gold+ licenses. Third party companies, such as Dattell, offer managed services for all versions of Elasticsearch (including Open Distro).
When deciding on a consulting support or a managed service provider, consider where you want to run your implementation (in your environment or on a third party’s cloud) and about if you want help with related software that is part of your larger architecture. For instance, Dattell supports its clients with messaging (specifically Apache Kafka and Apache Pulsar) which are often used in tandem with Elasticsearch.
More on How Elasticsearch Works
We have several other posts that dive into the fundamentals of Elasticsearch that together provide a comprehensive foundation for Elasticsearch.
Elasticsearch Definitions ー glossary of definitions and concepts fundamental to the ELK stack
How to Index Elasticsearch ー a primer on how Elasticsearch organizes and distributes data within a cluster
Elasticsearch Shard Optimization ー how to optimize for shard size to achieve maximum performance for your Elasticsearch cluster
Elasticsearch Cluster Optimization ー how to optimize Elasticsearch for small, medium, and large clusters
How to Query Elasticsearch using Boolean Queries ー Fundamentals and examples for using the boolean query
How to Query Elasticsearch in Kibana ー a quick start guide to Lucene and Kibana Query Languages
Kafka Monitoring With Elasticsearch & Kibana ー an example use case and how-to guide for using Elasticsearch and Kibana for performance monitoring
Elastic Stack Consulting Services
If you are interested in 24/7 support, consulting, and/or fully managed Elasticsearch services on your environment, you can find more information on our Elasticsearch consulting page.
Schedule a call with an Elastic Stack engineer.