ES|QL 查询 API
编辑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
- (可选,布尔值)是否应从结果的
columns
和values
部分删除完全为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 ANALYZE 或 EXPLAIN PLAN。 -
query
- (必需,字符串)要运行的 ES|QL 查询。有关语法,请参阅 语法参考。
响应体
编辑-
columns
- (对象数组)
values
中返回的每列的列name
和type
。每个对象都是单个列。 -
all_columns
- (对象数组)每个查询列的列
name
和type
。每个对象都是单个列。仅当请求中发送drop_null_columns
时才会返回。 -
values
- (数组的数组)搜索结果的值。
-
_clusters
- (对象)有关参与执行跨集群查询的集群的元数据。仅在 (1) 进行跨集群搜索,(2) 在正文中发送
include_ccs_metadata
并设置为true
,以及 (3) 响应的format
设置为 JSON(默认)、CBOR、SMILE 或 YAML 时返回。有关更多信息,请参阅 跨集群元数据。 -
profile
- (对象)描述查询执行情况的配置文件。仅当正文中发送
profile
时返回。对象本身用于人工调试,并且可能随时更改。可以将其视为 EXPLAIN ANALYZE 或 EXPLAIN PLAN。