ES|QL 查询 API

编辑

返回 ES|QL (Elasticsearch 查询语言) 查询的搜索结果。

resp = client.esql.query(
    query="\n    FROM library\n    | EVAL year = DATE_TRUNC(1 YEARS, release_date)\n    | STATS MAX(page_count) BY year\n    | SORT year\n    | LIMIT 5\n  ",
)
print(resp)
const response = await client.esql.query({
  query:
    "\n    FROM library\n    | EVAL year = DATE_TRUNC(1 YEARS, release_date)\n    | STATS MAX(page_count) BY year\n    | SORT year\n    | LIMIT 5\n  ",
});
console.log(response);
POST /_query
{
  "query": """
    FROM library
    | EVAL year = DATE_TRUNC(1 YEARS, release_date)
    | STATS MAX(page_count) BY year
    | SORT year
    | LIMIT 5
  """
}

请求

编辑

POST _query

先决条件

编辑
  • 如果启用了 Elasticsearch 安全功能,你必须拥有你搜索的数据流、索引或别名的 read 索引权限

查询参数

编辑
delimiter
(可选,字符串)CSV 结果的分隔符。默认为 ,。此 API 仅支持 CSV 响应的此参数。
drop_null_columns
(可选,布尔值)是否应从结果的 columnsvalues 部分删除完全为 null 的列?默认为 false。如果为 true,则响应将包含一个名为 all_columns 的额外部分,其中包含所有列的名称。
format

(可选,字符串)响应的格式。有关有效值,请参阅 响应格式

你也可以使用 Accept HTTP 标头指定格式。如果你同时指定此参数和 Accept HTTP 标头,则此参数优先。

请求体

编辑
columnar
(可选,布尔值)如果为 true,则以列式格式返回结果。默认为 false。此 API 仅支持 CBOR、JSON、SMILE 和 YAML 响应的此参数。请参阅 列式结果
include_ccs_metadata
(可选,布尔值)如果为 true,跨集群搜索将包含每个集群上有关查询的元数据。默认为 false。此 API 仅支持 CBOR、JSON、SMILE 和 YAML 响应的此参数。请参阅 跨集群元数据
locale
(可选,字符串)返回根据区域设置的约定格式化的结果(尤其是日期)。有关语法,请参阅 返回本地化结果
params
(可选,数组)query 中参数的值。有关语法,请参阅 将参数传递给查询
profile
(可选,布尔值)如果提供且为 true,则响应将包含一个额外的 profile 对象,其中包含有关如何执行查询的信息。它提供了对查询每个部分性能的深入了解。这用于人工调试,因为对象的格式可能随时更改。可以将其视为 EXPLAIN ANALYZEEXPLAIN PLAN
query
(必需,字符串)要运行的 ES|QL 查询。有关语法,请参阅 语法参考

响应体

编辑
columns
(对象数组)values 中返回的每列的列 nametype。每个对象都是单个列。
all_columns
(对象数组)每个查询列的列 nametype。每个对象都是单个列。仅当请求中发送 drop_null_columns 时才会返回。
values
(数组的数组)搜索结果的值。
_clusters
(对象)有关参与执行跨集群查询的集群的元数据。仅在 (1) 进行跨集群搜索,(2) 在正文中发送 include_ccs_metadata 并设置为 true,以及 (3) 响应的 format 设置为 JSON(默认)、CBOR、SMILE 或 YAML 时返回。有关更多信息,请参阅 跨集群元数据
profile
(对象)描述查询执行情况的配置文件。仅当正文中发送 profile 时返回。对象本身用于人工调试,并且可能随时更改。可以将其视为 EXPLAIN ANALYZEEXPLAIN PLAN