Query languages
Elastic Stack Serverless
Elasticsearch provides a number of query languages for interacting with your data.
Name | Description | Use cases | API endpoint |
---|---|---|---|
Query DSL | The primary query language for Elasticsearch. A powerful and flexible JSON-style language that enables complex queries. | Full-text search, semantic search, keyword search, filtering, aggregations, and more. | _search |
ES|QL | Introduced in 8.11, the Elasticsearch Query Language (ES|QL) is a piped query language language for filtering, transforming, and analyzing data. | Initially tailored towards working with time series data like logs and metrics.Robust integration with Kibana for querying, visualizing, and analyzing data.Does not yet support full-text search. | _query |
EQL | Event Query Language (EQL) is a query language for event-based time series data. Data must contain the @timestamp field to use EQL. |
Designed for the threat hunting security use case. | _eql |
Elasticsearch SQL | Allows native, real-time SQL-like querying against Elasticsearch data. JDBC and ODBC drivers are available for integration with business intelligence (BI) tools. | Enables users familiar with SQL to query Elasticsearch data using familiar syntax for BI and reporting. | _sql |
Kibana Query Language (KQL) | Kibana Query Language (KQL) is a text-based query language for filtering data when you access it through the Kibana UI. | Use KQL to filter documents where a value for a field exists, matches a given value, or is within a given range. | N/A |
ES|QL does not yet support all the features of Query DSL. Look forward to new ES|QL features and functionalities in each release.