IMPORTANT: This documentation is no longer updated. Refer to Elastic's version policy and the latest documentation.

Using ES|QL functions

edit

The ES|QL language includes a rich set of functions that can be used in expressions and conditionals. These can be included in expressions given as strings, as shown in the example below:

from elasticsearch.esql import ESQL

# FROM employees
# | KEEP first_name, last_name, height
# | WHERE LENGTH(first_name) < 4"
query = (
    ESQL.from_("employees")
    .keep("first_name", "last_name", "height")
    .where("LENGTH(first_name) < 4")
)

All available ES|QL functions have Python wrappers in the elasticsearch.esql.functions module, which can be used when building expressions using Python syntax. Below is the example above coded using Python syntax:

from elasticsearch.esql import ESQL, functions

# FROM employees
# | KEEP first_name, last_name, height
# | WHERE LENGTH(first_name) < 4"
query = (
    ESQL.from_("employees")
    .keep("first_name", "last_name", "height")
    .where(functions.length(E("first_name")) < 4)
)

Note that arguments passed to functions are assumed to be literals. When passing field names, parameters or other ES|QL expressions, it is necessary to wrap them with the E() helper function so that they are interpreted correctly.

You can find the complete list of available functions in the Python client’s ES|QL API reference documentation.