响应数据格式
Elastic Stack Serverless
文本格式对人类来说很友好,但计算机更喜欢结构化的东西。
Elasticsearch SQL 可以返回以下格式的数据,这些格式可以通过 URL 中的 format
属性设置,也可以通过设置 Accept
HTTP 标头来设置
注意
URL 参数优先于 Accept
HTTP 标头。如果两者都未指定,则响应将以与请求相同的格式返回。
format | Accept HTTP 标头 |
描述 |
---|---|---|
人类可读 | ||
csv |
text/csv |
逗号分隔值 |
json |
application/json |
JSON(JavaScript 对象表示法)人类可读格式 |
tsv |
text/tab-separated-values |
制表符分隔值 |
txt |
text/plain |
类似 CLI 的表示形式 |
yaml |
application/yaml |
YAML(YAML Ain’t Markup Language)人类可读格式 |
二进制格式 | ||
cbor |
application/cbor |
简洁二进制对象表示 |
smile |
application/smile |
Smile 类似于 CBOR 的二进制数据格式 |
CSV
格式接受格式化 URL 查询属性 delimiter
,该属性指示用于分隔 CSV 值的字符。 它默认为逗号 (,
),不能采用以下任何值:双引号 ("
)、回车符 (\r
) 和换行符 (\n
)。 制表符 (\t
) 也不能使用,需要改为使用 tsv
格式。
以下是一些人类可读格式的示例
POST /_sql?format=csv
{
"query": "SELECT * FROM library ORDER BY page_count DESC",
"fetch_size": 5
}
返回
author,name,page_count,release_date
Peter F. Hamilton,Pandora's Star,768,2004-03-02T00:00:00.000Z
Vernor Vinge,A Fire Upon the Deep,613,1992-06-01T00:00:00.000Z
Frank Herbert,Dune,604,1965-06-01T00:00:00.000Z
Alastair Reynolds,Revelation Space,585,2000-03-15T00:00:00.000Z
James S.A. Corey,Leviathan Wakes,561,2011-06-02T00:00:00.000Z
或
POST /_sql?format=csv&delimiter=%3b
{
"query": "SELECT * FROM library ORDER BY page_count DESC",
"fetch_size": 5
}
返回
author;name;page_count;release_date
Peter F. Hamilton;Pandora's Star;768;2004-03-02T00:00:00.000Z
Vernor Vinge;A Fire Upon the Deep;613;1992-06-01T00:00:00.000Z
Frank Herbert;Dune;604;1965-06-01T00:00:00.000Z
Alastair Reynolds;Revelation Space;585;2000-03-15T00:00:00.000Z
James S.A. Corey;Leviathan Wakes;561;2011-06-02T00:00:00.000Z
POST /_sql?format=json
{
"query": "SELECT * FROM library ORDER BY page_count DESC",
"fetch_size": 5
}
返回
{
"columns": [
{"name": "author", "type": "text"},
{"name": "name", "type": "text"},
{"name": "page_count", "type": "short"},
{"name": "release_date", "type": "datetime"}
],
"rows": [
["Peter F. Hamilton", "Pandora's Star", 768, "2004-03-02T00:00:00.000Z"],
["Vernor Vinge", "A Fire Upon the Deep", 613, "1992-06-01T00:00:00.000Z"],
["Frank Herbert", "Dune", 604, "1965-06-01T00:00:00.000Z"],
["Alastair Reynolds", "Revelation Space", 585, "2000-03-15T00:00:00.000Z"],
["James S.A. Corey", "Leviathan Wakes", 561, "2011-06-02T00:00:00.000Z"]
],
"cursor": "sDXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAAEWWWdrRlVfSS1TbDYtcW9lc1FJNmlYdw==:BAFmBmF1dGhvcgFmBG5hbWUBZgpwYWdlX2NvdW50AWYMcmVsZWFzZV9kYXRl+v///w8="
}
POST /_sql?format=tsv
{
"query": "SELECT * FROM library ORDER BY page_count DESC",
"fetch_size": 5
}
返回
author name page_count release_date
Peter F. Hamilton Pandora's Star 768 2004-03-02T00:00:00.000Z
Vernor Vinge A Fire Upon the Deep 613 1992-06-01T00:00:00.000Z
Frank Herbert Dune 604 1965-06-01T00:00:00.000Z
Alastair Reynolds Revelation Space 585 2000-03-15T00:00:00.000Z
James S.A. Corey Leviathan Wakes 561 2011-06-02T00:00:00.000Z
POST /_sql?format=txt
{
"query": "SELECT * FROM library ORDER BY page_count DESC",
"fetch_size": 5
}
返回
author | name | page_count | release_date
-----------------+--------------------+---------------+------------------------
Peter F. Hamilton|Pandora's Star |768 |2004-03-02T00:00:00.000Z
Vernor Vinge |A Fire Upon the Deep|613 |1992-06-01T00:00:00.000Z
Frank Herbert |Dune |604 |1965-06-01T00:00:00.000Z
Alastair Reynolds|Revelation Space |585 |2000-03-15T00:00:00.000Z
James S.A. Corey |Leviathan Wakes |561 |2011-06-02T00:00:00.000Z
POST /_sql?format=yaml
{
"query": "SELECT * FROM library ORDER BY page_count DESC",
"fetch_size": 5
}
返回
columns:
- name: "author"
type: "text"
- name: "name"
type: "text"
- name: "page_count"
type: "short"
- name: "release_date"
type: "datetime"
rows:
- - "Peter F. Hamilton"
- "Pandora's Star"
- 768
- "2004-03-02T00:00:00.000Z"
- - "Vernor Vinge"
- "A Fire Upon the Deep"
- 613
- "1992-06-01T00:00:00.000Z"
- - "Frank Herbert"
- "Dune"
- 604
- "1965-06-01T00:00:00.000Z"
- - "Alastair Reynolds"
- "Revelation Space"
- 585
- "2000-03-15T00:00:00.000Z"
- - "James S.A. Corey"
- "Leviathan Wakes"
- 561
- "2011-06-02T00:00:00.000Z"
cursor: "sDXF1ZXJ5QW5kRmV0Y2gBAAAAAAAAAAEWWWdrRlVfSS1TbDYtcW9lc1FJNmlYdw==:BAFmBmF1dGhvcgFmBG5hbWUBZgpwYWdlX2NvdW50AWYMcmVsZWFzZV9kYXRl+v///w8="