Type to search.

ES|QL SUBSTRING function

Serverless

Elastic Cloud Serverless projects are autoscaled environments, fully managed by Elastic and available on Elastic Cloud.

Availability

  • Generally available

    This functionality is generally available and ready for production usage.

Serverless interfaces and procedures might differ from classic Elastic Stack deployments.

Stack

The Elastic Stack includes Elastic's core products such as Elasticsearch, Kibana, Logstash, and Beats.

Availability

  • Generally available

    This functionality is generally available and ready for production usage.

Unless stated otherwise on the page, this functionality is available when your Elastic Stack is deployed on Elastic Cloud Hosted, Elastic Cloud Enterprise, Elastic Cloud on Kubernetes, and self-managed environments.

This documentation corresponds to the latest patch available for each minor version. If you're not using the latest patch, check the release notes for changes.

Returns a substring of a string, specified by a start position and an optional length.

Embedded
Embedded
string
String expression. If null, the function returns null.
start
Start position.
length

Length of the substring from the start position. Optional; if omitted, all positions after start are returned.

Returns a substring of a string, specified by a start position and an optional length.

string start length result
keyword integer integer keyword
text integer integer keyword

This example returns the first three characters of every last name:

ES|QL
FROM employees
| KEEP last_name
| EVAL ln_sub = SUBSTRING(last_name, 1, 3)
last_name:keyword ln_sub:keyword
Awdeh Awd
Azuma Azu
Baek Bae
Bamford Bam
Bernatsky Ber

A negative start position is interpreted as being relative to the end of the string. This example returns the last three characters of every last name:

ES|QL
FROM employees
| KEEP last_name
| EVAL ln_sub = SUBSTRING(last_name, -3, 3)
last_name:keyword ln_sub:keyword
Awdeh deh
Azuma uma
Baek aek
Bamford ord
Bernatsky sky

If length is omitted, substring returns the remainder of the string. This example returns all characters except for the first:

ES|QL
FROM employees
| KEEP last_name
| EVAL ln_sub = SUBSTRING(last_name, 2)
last_name:keyword ln_sub:keyword
Awdeh wdeh
Azuma zuma
Baek aek
Bamford amford
Bernatsky ernatsky