Loading

Query languages

Stack Serverless

Elasticsearch provides a number of query languages for interacting with your data. You can use these languages programmatically when working with Elasticsearch and Kibana APIs in your application, or interactively using the Kibana UI.

Name Description Use cases API endpoint
Query DSL Elasticsearch's primary, most powerful and flexible JSON-style language for complex queries.

Full language reference
Full-text search, semantic search, keyword search, filtering, aggregations, and more.

Query DSL in Kibana
_search
ES|QL Introduced in 8.11, the Elasticsearch Query Language (ES|QL) is a piped query language for filtering, transforming, and analyzing data.

Full language reference
You can use ES|QL in multiple Kibana applications for querying, visualizing, and analyzing data.

ES|QL in Kibana
_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.

Full language reference
Designed for the threat hunting security use case.

EQL in Kibana
_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.

Full language reference
Query Elasticsearch data using a familiar SQL syntax for BI and reporting.

Elasticsearch SQL in Kibana
_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.

KQL in Kibana
N/A
Lucene query syntax The original query syntax for Elasticsearch, based on Apache Lucene. Simple text-based syntax for basic searches and filtering. Perform basic text searches, simple field queries, and wildcard searches. Useful for quick searches and simple filtering.

Lucene syntax in Kibana
_search