elasticsearch/docs/reference/esql/functions
Craig Taverner a7b38394d9
ESQL: Support ST_DISJOINT (#107007)
* WIP Started developing ST_DISJOINT

Initially based on ST_INTERSECTS

* Fix functions list and add spatial point integration tests

* Update docs/changelog/107007.yaml

* More tests for shapes and cartesian-multigeoms

* Some more tests to highlight issues with DISJOINT on cartesian point indices

* Disable Lucene push-down for DISJOINT on cartesian point indices

* Added docs for ST_DISJOINT

* Support DISJOINT in the lucene-pushdown code for cartesian point indexes

* Re-enable push-to-source for DISJOINT on cartesian_point indices

* Fix docs example

* Try fix internal docs links which are not being rendered

* Fixed disjoint on empty geometry

* Added tests on empty linestring, and changed lucene push-down to exception

In lucene code only LineString can be empty, but in Elasticsearch even that is not allowed, resulting in parsing errors. So we cannot get to this code in the lucene push-down and now throw an error instead. The tests now assert on the warnings.

Note that for any predicate DISJOINT and INTERSECTS alike, the predicate fails, because the parsing error results in null, the function returns null, the predicate interprets this as false, and no documents match. This null-in-null-out rule means that DISJOINT and INTERSECTS give the same answer on invalid geometries.
2024-04-08 12:26:26 +02:00
..
description ESQL: Support ST_DISJOINT (#107007) 2024-04-08 12:26:26 +02:00
examples ESQL: Support ST_DISJOINT (#107007) 2024-04-08 12:26:26 +02:00
layout ESQL: Support ST_DISJOINT (#107007) 2024-04-08 12:26:26 +02:00
parameters ESQL: Support ST_DISJOINT (#107007) 2024-04-08 12:26:26 +02:00
signature ESQL: Support ST_DISJOINT (#107007) 2024-04-08 12:26:26 +02:00
types ESQL: Support ST_DISJOINT (#107007) 2024-04-08 12:26:26 +02:00
aggregation-functions.asciidoc ESQL: Support ST_CONTAINS and ST_WITHIN (#106503) 2024-04-02 10:31:00 +02:00
auto_bucket.asciidoc ESQL: Mark a few features as experimental (#105263) 2024-02-07 17:28:13 -08:00
avg.asciidoc [DOCS] Support for nested functions in ES|QL STATS...BY (#104788) 2024-01-30 19:29:12 +01:00
binary.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
case.asciidoc [DOCS] Improve ES|QL functions reference for functions A-D (#103447) 2023-12-19 15:59:02 +01:00
cidr_match.asciidoc [DOCS] Improve ES|QL functions reference for functions A-D (#103447) 2023-12-19 15:59:02 +01:00
coalesce.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
concat.asciidoc [DOCS] Improve ES|QL functions reference for functions A-D (#103447) 2023-12-19 15:59:02 +01:00
conditional-functions-and-expressions.asciidoc Add improvements to the ES|QL docs (#101195) 2023-10-23 07:45:42 -07:00
cosh.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
count-distinct.asciidoc [DOCS] Support for nested functions in ES|QL STATS...BY (#104788) 2024-01-30 19:29:12 +01:00
count.asciidoc [DOCS] Support for nested functions in ES|QL STATS...BY (#104788) 2024-01-30 19:29:12 +01:00
date-time-functions.asciidoc ESQL: Mark a few features as experimental (#105263) 2024-02-07 17:28:13 -08:00
date_diff.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
date_extract.asciidoc [DOCS] Improve ES|QL functions reference for functions A-D (#103447) 2023-12-19 15:59:02 +01:00
date_format.asciidoc [DOCS] Improve ES|QL functions reference for functions A-D (#103447) 2023-12-19 15:59:02 +01:00
date_parse.asciidoc [DOCS] Small ES|QL improvements (#101877) 2023-11-07 17:24:59 +01:00
date_trunc.asciidoc [DOCS] Improve ES|QL functions reference for functions A-D (#103447) 2023-12-19 15:59:02 +01:00
e.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
ends_with.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
floor.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
greatest.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
in.asciidoc [DOCS] Examples for ES|QL DISSECT and WHERE (#102591) 2023-11-27 10:56:48 +01:00
least.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
length.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
like.asciidoc [DOCS] Examples for ES|QL DISSECT and WHERE (#102591) 2023-11-27 10:56:48 +01:00
logical.asciidoc Restructure ES|QL docs (#100806) 2023-10-17 17:36:14 +02:00
ltrim.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
math-functions.asciidoc Add ES|QL signum function (#106866) 2024-04-04 09:48:35 +02:00
max.asciidoc [DOCS] Support for nested functions in ES|QL STATS...BY (#104788) 2024-01-30 19:29:12 +01:00
median-absolute-deviation.asciidoc [DOCS] Support for nested functions in ES|QL STATS...BY (#104788) 2024-01-30 19:29:12 +01:00
median.asciidoc [DOCS] Support for nested functions in ES|QL STATS...BY (#104788) 2024-01-30 19:29:12 +01:00
min.asciidoc [DOCS] Support for nested functions in ES|QL STATS...BY (#104788) 2024-01-30 19:29:12 +01:00
mv-functions.asciidoc [ES|QL] Add mv_sort (#106095) 2024-03-13 12:04:12 -04:00
mv_avg.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
mv_concat.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
mv_count.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
mv_dedupe.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
mv_first.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
mv_last.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
mv_max.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
mv_median.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
mv_min.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
mv_slice.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
mv_sort.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
mv_sum.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
mv_zip.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
now.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
operators.asciidoc [ESQL] Remove is_nan, is_finite, and is_infinite (#104091) 2024-01-09 14:51:32 -05:00
percentile.asciidoc [DOCS] Support for nested functions in ES|QL STATS...BY (#104788) 2024-01-30 19:29:12 +01:00
pi.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
pow.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
predicates.asciidoc [DOCS] Examples for ES|QL DISSECT and WHERE (#102591) 2023-11-27 10:56:48 +01:00
README.md Fix typo in functions/README.md (#106870) 2024-03-28 14:02:47 +01:00
replace.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
right.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
rlike.asciidoc [DOCS] Examples for ES|QL DISSECT and WHERE (#102591) 2023-11-27 10:56:48 +01:00
round.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
rtrim.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
spatial-functions.asciidoc ESQL: Support ST_DISJOINT (#107007) 2024-04-08 12:26:26 +02:00
split.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
sqrt.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
st_centroid.asciidoc ESQL: Support ST_CONTAINS and ST_WITHIN (#106503) 2024-04-02 10:31:00 +02:00
st_contains.asciidoc ESQL: Support ST_DISJOINT (#107007) 2024-04-08 12:26:26 +02:00
st_disjoint.asciidoc ESQL: Support ST_DISJOINT (#107007) 2024-04-08 12:26:26 +02:00
st_intersects.asciidoc ESQL: Support ST_DISJOINT (#107007) 2024-04-08 12:26:26 +02:00
st_within.asciidoc ESQL: Support ST_DISJOINT (#107007) 2024-04-08 12:26:26 +02:00
st_x.asciidoc ESQL: Support ST_CONTAINS and ST_WITHIN (#106503) 2024-04-02 10:31:00 +02:00
st_y.asciidoc ESQL: Support ST_CONTAINS and ST_WITHIN (#106503) 2024-04-02 10:31:00 +02:00
starts_with.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
string-functions.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
substring.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
sum.asciidoc [DOCS] Support for nested functions in ES|QL STATS...BY (#104788) 2024-01-30 19:29:12 +01:00
tau.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
to_boolean.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
to_cartesianpoint.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
to_cartesianshape.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
to_datetime.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
to_degrees.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
to_double.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
to_geopoint.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
to_geoshape.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
to_integer.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
to_ip.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
to_long.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
to_lower.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
to_radians.asciidoc [DOCS] Improve ES|QL functions reference for functions E-Z (#104623) 2024-01-25 16:32:24 +01:00
to_string.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
to_unsigned_long.asciidoc ESQL: Mark a few features as experimental (#105263) 2024-02-07 17:28:13 -08:00
to_upper.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
to_version.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
trim.asciidoc ESQL: Generate more docs (#106367) 2024-03-19 15:40:13 -04:00
type-conversion-functions.asciidoc ESQL: Mark a few features as experimental (#105263) 2024-02-07 17:28:13 -08:00
unary.asciidoc ESQL: Add type tables for operators to docs (#103206) 2023-12-11 10:51:38 -05:00
values.asciidoc ESQL: Enable VALUES agg for datetime (#107016) 2024-04-03 07:42:40 -04:00

The files in these subdirectories are generated by ESQL's test suite:

  • description - description of each function scraped from @FunctionInfo#description
  • examples - examples of each function scraped from @FunctionInfo#examples
  • parameters - description of each function's parameters scraped from @Param
  • signature - railroad diagram of the syntax to invoke each function
  • types - a table of each combination of support type for each parameter. These are generated from tests.
  • layout - a fully generated description for each function

Most functions can use the generated docs generated in the layout directory. If we need something more custom for the function we can make a file in this directory that can include:: any parts of the files above.

To regenerate the files for a function run its tests using gradle:

./gradlew :x-pack:plugin:esql:test -Dtests.class='*SinTests'

To regenerate the files for all functions run all of ESQL's tests using gradle:

./gradlew :x-pack:plugin:esql:test