Skip to content

Commit 1fa9744

Browse files
authored
[E&A] Spruce up ESQL landing page (#1228)
# [๐Ÿ‘๏ธ | ๐Ÿ‘๏ธ URL preview](https://docs-v3-preview.elastic.dev/elastic/docs-content/pull/1228/explore-analyze/query-filter/languages/esql) Mainly cosmetic, but should improve the UX for users landing in **Explore & Analyze** for ESQL: Rough summary: - removed gerund forms ("using", "getting") from all titles - shortened, edited navigation titles where necessary - added two new parent pages (esql-where.md, esql-multi.md) for logical grouping - updated toc.yml to reflect new hierarchical structure - marked cross-clusters feature as unavailable for serverless - expanded esql landing page with clearer structure and examples - reorganized reference documentation into visual groups - added section on user interfaces with programmatic vs interactive options - added more cross-links between related docs - improved consistency in capitalization and terminology ## Nav before <img width="234" alt="Screenshot 2025-04-22 at 16 09 25" src="https://github.com/user-attachments/assets/a989d476-5e50-4906-8f0b-77770d0aca2e" /> ## Nav after <img width="255" alt="Screenshot 2025-04-22 at 16 09 51" src="https://github.com/user-attachments/assets/5f5261a4-fbd3-4c6a-84c1-7fdfd68ef2b2" />
1 parent 99a13af commit 1fa9744

File tree

11 files changed

+119
-66
lines changed

11 files changed

+119
-66
lines changed

โ€Žexplore-analyze/query-filter/languages/esql-cross-clusters.mdโ€Ž

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,15 @@
11
---
22
applies_to:
33
stack: ga
4-
serverless: ga
5-
navigation_title: "Using {{esql}} across clusters"
4+
serverless: unavailable
5+
navigation_title: "Query across clusters"
66
mapped_pages:
77
- https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-cross-clusters.html
88
---
99

1010

1111

12-
# Using ES|QL across clusters [esql-cross-clusters]
12+
# Use ES|QL across clusters [esql-cross-clusters]
1313

1414

1515
::::{warning}

โ€Žexplore-analyze/query-filter/languages/esql-elastic-security.mdโ€Ž

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,12 @@
22
applies_to:
33
stack: ga
44
serverless: ga
5-
navigation_title: "Using {{esql}} in {{elastic-sec}}"
5+
navigation_title: "{{elastic-sec}}"
66
mapped_pages:
77
- https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-elastic-security.html
88
---
99

10-
11-
12-
# Using ES|QL in Elastic Security [esql-elastic-security]
13-
10+
# Use ES|QL in {{elastic-sec}} [esql-elastic-security]
1411

1512
You can use {{esql}} in {{elastic-sec}} to investigate events in Timeline and create detection rules. Use the Elastic AI Assistant to build {{esql}} queries, or answer questions about the {{esql}} query language.
1613

โ€Žexplore-analyze/query-filter/languages/esql-examples.mdโ€Ž

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ navigation_title: "Examples"
77

88
# {{esql}} examples [esql-examples]
99

10-
11-
1210
## Aggregating and enriching windows event logs [_aggregating_and_enriching_windows_event_logs]
1311

1412
```esql

โ€Žexplore-analyze/query-filter/languages/esql-getting-started.mdโ€Ž

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,10 @@
22
applies_to:
33
stack: ga
44
serverless: ga
5-
navigation_title: "Getting started"
5+
navigation_title: "Get started"
66
---
77

8-
# Getting started with {{esql}} queries [esql-getting-started]
9-
8+
# Get started with {{esql}} queries [esql-getting-started]
109

1110
This guide shows how you can use {{esql}} to query and aggregate your data.
1211

โ€Žexplore-analyze/query-filter/languages/esql-kibana.mdโ€Ž

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,12 +2,12 @@
22
applies_to:
33
stack: ga
44
serverless: ga
5-
navigation_title: "Using {{esql}} in {{kib}}"
5+
navigation_title: "{{kib}}"
66
mapped_pages:
77
- https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-kibana.html
88
---
99

10-
# Using ES|QL in Kibana [esql-kibana]
10+
# Use ES|QL in Kibana [esql-kibana]
1111

1212
You can use {{esql}} in {{kib}} to query and aggregate your data, create visualizations, and set up alerts.
1313

โ€Žexplore-analyze/query-filter/languages/esql-multi-index.mdโ€Ž

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,15 +2,12 @@
22
applies_to:
33
stack: ga
44
serverless: ga
5-
navigation_title: "Using {{esql}} to query multiple indices"
5+
navigation_title: "Query multiple indices"
66
mapped_pages:
77
- https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-multi-index.html
88
---
99

10-
11-
12-
# Using ES|QL to query multiple indices [esql-multi-index]
13-
10+
# Use ES|QL to query multiple indices [esql-multi-index]
1411

1512
With {{esql}}, you can execute a single query across multiple indices, data streams, or aliases. To do so, use wildcards and date arithmetic. The following example uses a comma-separated list and a wildcard:
1613

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
---
2+
applies_to:
3+
stack: ga
4+
serverless: ga
5+
navigation_title: "Query multiple sources"
6+
---
7+
8+
# Query multiple indices or clusters with {{esql}}
9+
10+
{{esql}} allows you to query across multiple indices or clusters. Learn more in the following sections:
11+
12+
* [Query multiple indices](esql-multi-index.md)
13+
* [Query across clusters](esql-cross-clusters.md)

โ€Žexplore-analyze/query-filter/languages/esql-rest.mdโ€Ž

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,16 +2,16 @@
22
applies_to:
33
stack: ga
44
serverless: ga
5-
navigation_title: "{{esql}} query API"
5+
navigation_title: "{{esql}} `_query` API"
66
mapped_pages:
77
- https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-rest.html
88
---
99

10+
# Use the {{esql}} `_query` API [esql-rest]
1011

11-
12-
# {{esql}} query API [esql-rest]
13-
14-
12+
::::{tip}
13+
The [Search and filter with {{esql}}](/solutions/search/esql-search-tutorial.md) tutorial provides a hands-on introduction to the {{esql}} query API.
14+
::::
1515

1616
## Overview [esql-rest-overview]
1717

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
---
2+
applies_to:
3+
stack: ga
4+
serverless: ga
5+
navigation_title: "Interfaces"
6+
---
7+
8+
# Where can I use {{esql}}?
9+
10+
You can use {{esql}} in the following contexts:
11+
12+
* [REST API](esql-rest.md)
13+
* [Kibana](esql-kibana.md)
14+
* [Elastic Security](esql-elastic-security.md)
Lines changed: 66 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,4 @@
11
---
2-
applies_to:
3-
stack: ga
4-
serverless: ga
52
mapped_pages:
63
- https://www.elastic.co/guide/en/elasticsearch/reference/current/esql.html
74
- https://www.elastic.co/guide/en/elasticsearch/reference/current/esql-getting-started.html
@@ -10,54 +7,88 @@ mapped_pages:
107
- https://www.elastic.co/guide/en/kibana/current/esql.html
118
---
129

13-
# ES|QL [esql]
10+
# {{esql}} [esql]
11+
12+
**Elasticsearch Query Language ({{esql}})** is a piped query language for filtering, transforming, and analyzing data.
1413

1514
## What's {{esql}}? [_the_esql_compute_engine]
1615

17-
**Elasticsearch Query Language ({{esql}})** is a piped query language for filtering, transforming, and analyzing data.
16+
You can author {{esql}} queries to find specific events, perform statistical analysis, and create visualizations. It supports a wide range of commands, functions, and operators to perform various data operations, such as filter, aggregation, time-series analysis, and more. It initially supported a subset of the features available in Query DSL, but it is rapidly evolving with every {{serverless-full}} and Stack release.
1817

19-
You can author {{esql}} queries to find specific events, perform statistical analysis, and generate visualizations. It supports a wide range of [commands](elasticsearch://reference/query-languages/esql/esql-commands.md), [functions, and operators](elasticsearch://reference/query-languages/esql/esql-functions-operators.md) to perform various data operations, such as filtering, aggregation, time-series analysis, and more. Today, it supports a subset of the features available in Query DSL, but it is rapidly evolving.
18+
{{esql}} is designed to be easy to read and write, making it accessible for users with varying levels of technical expertise. It is particularly useful for data analysts, security professionals, and developers who need to work with large datasets in Elasticsearch.
2019

21-
::::{note}
22-
**{{esql}}'s compute architecture**
20+
## How does it work? [search-analyze-data-esql]
2321

24-
{{esql}} is built on top of a new compute architecture within {{es}}, designed to achieve high functional and performance requirements for {{esql}}. {{esql}} search, aggregation, and transformation functions are directly executed within Elasticsearch itself. Query expressions are not transpiled to Query DSL for execution. This approach allows {{esql}} to be extremely performant and versatile.
22+
{{esql}} uses pipes (`|`) to manipulate and transform data in a step-by-step fashion. This approach allows you to compose a series of operations, where the output of one operation becomes the input for the next, enabling complex data transformations and analysis.
2523

26-
The new {{esql}} execution engine was designed with performance in mind โ€” it operates on blocks at a time instead of per row, targets vectorization and cache locality, and embraces specialization and multi-threading. It is a separate component from the existing Elasticsearch aggregation framework with different performance characteristics.
27-
::::
24+
Here's a simple example of an {{esql}} query:
2825

29-
## How does it work? [search-analyze-data-esql]
26+
```esql
27+
FROM sample_data
28+
| SORT @timestamp DESC
29+
| LIMIT 3
30+
```
31+
32+
Note that each line in the query represents a step in the data processing pipeline:
33+
- The `FROM` clause specifies the index or data stream to query
34+
- The `SORT` clause sorts the data by the `@timestamp` field in descending order
35+
- The `LIMIT` clause restricts the output to the top 3 results
3036

31-
The {{es}} Query Language ({{esql}}) makes use of "pipes" (|) to manipulate and transform data in a step-by-step fashion. This approach allows you to compose a series of operations, where the output of one operation becomes the input for the next, enabling complex data transformations and analysis.
37+
### User interfaces
3238

33-
You can use it:
34-
- In your queries to {{es}} APIs, using the [`_query` endpoint](/explore-analyze/query-filter/languages/esql-rest.md) that accepts queries written in {{esql}} syntax.
35-
- Within various {{kib}} tools such as Discover and Dashboards, to explore your data and build powerful visualizations.
39+
You can interact with {{esql}} in two ways:
3640

37-
Learn more about using {{esql}} for Search use cases in this tutorial: [Search and filter with {{esql}}](/solutions/search/esql-search-tutorial.md).
41+
- **Programmatic access**: Use {{esql}} syntax with the {{es}} `_query` endpoint.
3842

39-
## Next steps
43+
- **Interactive interfaces**: Work with {{esql}} through Elastic user interfaces including Kibana Discover, Dashboards, Dev Tools, and analysis tools in Elastic Security and Observability.
4044

41-
Find more details about {{esql}} in the following documentation pages:
42-
- [{{esql}} reference](elasticsearch://reference/query-languages/esql.md):
43-
- Reference documentation for the [{{esql}} syntax](elasticsearch://reference/query-languages/esql/esql-syntax.md):
44-
- Reference for [commands](elasticsearch://reference/query-languages/esql/esql-commands.md), and [functions and operators](elasticsearch://reference/query-languages/esql/esql-functions-operators.md)
45-
- How to work with [metadata fields](elasticsearch://reference/query-languages/esql/esql-metadata-fields.md) and [multivalued fields](elasticsearch://reference/query-languages/esql/esql-multivalued-fields.md)
46-
- How to work with [DISSECT and GROK](elasticsearch://reference/query-languages/esql/esql-process-data-with-dissect-grok.md), [ENRICH](elasticsearch://reference/query-languages/esql/esql-enrich-data.md), and [LOOKUP join](elasticsearch://reference/query-languages/esql/esql-lookup-join.md)
45+
## Documentation
4746

47+
### Usage guides
48+
- **Get started**
49+
- [Get started in docs](/explore-analyze/query-filter/languages/esql-getting-started.md)
50+
- [Training course](https://www.elastic.co/training/introduction-to-esql)
51+
- **{{esql}} interfaces**
52+
- [Use the query API](/explore-analyze/query-filter/languages/esql-rest.md)
53+
- [Use {{esql}} in Kibana](/explore-analyze/query-filter/languages/esql-kibana.md)
54+
- [Use {{esql}} in Elastic Security](/explore-analyze/query-filter/languages/esql-elastic-security.md)
55+
- **{{esql}} for search use cases**
56+
- [{{esql}} for search landing page](/solutions/search/esql-for-search.md)
57+
- [{{esql}} for search tutorial](/solutions/search/esql-search-tutorial.md)
58+
- **Query multiple sources**
59+
- [Query multiple indices](/explore-analyze/query-filter/languages/esql-multi-index.md)
60+
- [Query across clusters](/explore-analyze/query-filter/languages/esql-cross-clusters.md)
4861

49-
- Using {{esql}}:
50-
- An overview of using the [`_query` API endpoint](/explore-analyze/query-filter/languages/esql-rest.md).
51-
- [Using {{esql}} for search](/solutions/search/esql-for-search.md).
52-
- [Using {{esql}} in {{kib}}](../../../explore-analyze/query-filter/languages/esql-kibana.md).
53-
- [Using {{esql}} in {{elastic-sec}}](/explore-analyze/query-filter/languages/esql-elastic-security.md).
54-
- [Using {{esql}} with multiple indices](/explore-analyze/query-filter/languages/esql-multi-index.md).
55-
- [Using {{esql}} across clusters](/explore-analyze/query-filter/languages/esql-cross-clusters.md).
56-
- [Task management](/explore-analyze/query-filter/languages/esql-task-management.md).
62+
### Reference documentation
5763

64+
:::{note}
65+
The {{esql}} reference documentation lives in the {{es}} reference section of the Elastic docs.
66+
:::
5867

59-
- [Limitations](elasticsearch://reference/query-languages/esql/limitations.md): The current limitations of {{esql}}.
68+
#### Core references
69+
* [{{esql}} reference](elasticsearch://reference/query-languages/esql.md)
70+
* [{{esql}} syntax](elasticsearch://reference/query-languages/esql/esql-syntax.md)
6071

61-
- [Examples](/explore-analyze/query-filter/languages/esql.md): A few examples of what you can do with {{esql}}.
72+
#### Commands, functions, and operators
73+
* [Commands](elasticsearch://reference/query-languages/esql/esql-commands.md)
74+
* [Functions and operators](elasticsearch://reference/query-languages/esql/esql-functions-operators.md)
6275

63-
To get started, you can also try [our ES|QL training course](https://www.elastic.co/training/introduction-to-esql).
76+
#### Field types
77+
* [Metadata fields](elasticsearch://reference/query-languages/esql/esql-metadata-fields.md)
78+
* [Multivalued fields](elasticsearch://reference/query-languages/esql/esql-multivalued-fields.md)
79+
80+
#### Advanced features
81+
* [DISSECT and GROK](elasticsearch://reference/query-languages/esql/esql-process-data-with-dissect-grok.md)
82+
* [ENRICH](elasticsearch://reference/query-languages/esql/esql-enrich-data.md)
83+
* [LOOKUP JOIN](elasticsearch://reference/query-languages/esql/esql-lookup-join.md)
84+
85+
#### Limitations
86+
* [Limitations](elasticsearch://reference/query-languages/esql/limitations.md)
87+
88+
::::{note}
89+
**{{esql}}'s compute architecture**
90+
91+
{{esql}} is built on top of a new compute architecture within {{es}}, designed to achieve high functional and performance requirements for {{esql}}. {{esql}} search, aggregation, and transformation functions are directly executed within Elasticsearch itself. Query expressions are not transpiled to Query DSL for execution. This approach allows {{esql}} to be extremely performant and versatile.
92+
93+
The new {{esql}} execution engine was designed with performance in mind โ€” it operates on blocks at a time instead of per row, targets vectorization and cache locality, and embraces specialization and multi-threading. It is a separate component from the existing Elasticsearch aggregation framework with different performance characteristics.
94+
::::

0 commit comments

Comments
ย (0)