index.asciidoc 3.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. [[esql]]
  2. = {esql}
  3. :esql-tests: {elasticsearch-root}/x-pack/docs/{lang}/../../plugin/esql/qa
  4. :esql-specs: {esql-tests}/testFixtures/src/main/resources
  5. [partintro]
  6. The {es} Query Language ({esql}) provides a powerful way to filter, transform,
  7. and analyze data stored in {es}, and in the future in other runtimes. It is
  8. designed to be easy to learn and use, by end users, SRE teams, application
  9. developers, and administrators.
  10. Users can author {esql} queries to find specific events, perform statistical
  11. analysis, and generate visualizations. It supports a wide range of commands and
  12. functions that enable users to perform various data operations, such as
  13. filtering, aggregation, time-series analysis, and more.
  14. The {es} Query Language ({esql}) makes use of "pipes" (|) to manipulate and
  15. transform data in a step-by-step fashion. This approach allows users to compose
  16. a series of operations, where the output of one operation becomes the input for
  17. the next, enabling complex data transformations and analysis.
  18. [discrete]
  19. === Documentation organization
  20. The {esql} documentation is organized in these sections:
  21. <<esql-getting-started>>::
  22. A tutorial to help you get started with {esql}.
  23. <<esql-language>>::
  24. Reference documentation for the <<esql-syntax,{esql} syntax>>:
  25. * Reference for <<esql-commands,commands>>, and <<esql-functions-operators,functions and
  26. operators>>
  27. * How to work with <<esql-metadata-fields,metadata
  28. fields>> and <<esql-multivalued-fields,multivalued fields>>
  29. * How to work with
  30. <<esql-process-data-with-dissect-and-grok,DISSECT and
  31. GROK>>, <<esql-enrich-data,ENRICH>>, and <<esql-lookup-join,LOOKUP join>>
  32. <<esql-using>>::
  33. An overview of:
  34. * <<esql-rest,Using the {esql} rest API>>
  35. * <<esql-for-search>>
  36. * <<esql-kibana>>
  37. * <<esql-elastic-security>>
  38. * <<esql-cross-clusters>>
  39. * <<esql-task-management>>
  40. <<esql-limitations>>::
  41. The current limitations of {esql}.
  42. <<esql-examples>>::
  43. A few examples of what you can do with {esql}.
  44. include::esql-get-started.asciidoc[]
  45. include::esql-language.asciidoc[]
  46. include::esql-using.asciidoc[]
  47. include::esql-limitations.asciidoc[]
  48. include::esql-examples.asciidoc[]
  49. :esql-tests!:
  50. :esql-specs!:
  51. [discrete]
  52. === The {esql} Compute Engine
  53. {esql} is more than a language: it represents a significant investment in new
  54. compute capabilities within {es}. To achieve both the functional and performance
  55. requirements for {esql}, it was necessary to build an entirely new compute
  56. architecture. {esql} search, aggregation, and transformation functions are
  57. directly executed within Elasticsearch itself. Query expressions are not
  58. transpiled to Query DSL for execution. This approach allows {esql} to be
  59. extremely performant and versatile.
  60. The new {esql} execution engine was designed with performance in mind — it
  61. operates on blocks at a time instead of per row, targets vectorization and cache
  62. locality, and embraces specialization and multi-threading. It is a separate
  63. component from the existing Elasticsearch aggregation framework with different
  64. performance characteristics.