响应数据格式
编辑响应数据格式
编辑虽然文本格式对人类来说很友好,但计算机更喜欢结构化的数据。
Elasticsearch SQL 可以返回以下格式的数据,可以通过 URL 中的 format
属性或设置 Accept
HTTP 标头来设置。
URL 参数优先于 Accept
HTTP 标头。如果两者都未指定,则响应将以与请求相同的格式返回。
格式 |
|
描述 |
人类可读 |
||
|
|
|
|
|
JSON (JavaScript 对象表示法) 人类可读格式 |
|
|
|
|
|
类似 CLI 的表示 |
|
|
YAML (YAML 不是标记语言) 人类可读格式 |
二进制格式 |
||
|
|
|
|
|
Smile 类似于 CBOR 的二进制数据格式 |
CSV
格式接受一个格式化 URL 查询属性 delimiter
,它指示用于分隔 CSV 值的字符。它默认为逗号 (,
),并且不能采用以下任何值:双引号 ("
)、回车符 (\r
) 和换行符 (\n
)。制表符 (\t
) 也不能使用,需要使用 tsv
格式。
以下是一些人类可读格式的示例
CSV
编辑resp = client.sql.query( format="csv", query="SELECT * FROM library ORDER BY page_count DESC", fetch_size=5, ) print(resp)
response = client.sql.query( format: 'csv', body: { query: 'SELECT * FROM library ORDER BY page_count DESC', fetch_size: 5 } ) puts response
const response = await client.sql.query({ format: "csv", query: "SELECT * FROM library ORDER BY page_count DESC", fetch_size: 5, }); console.log(response);
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
或
resp = client.sql.query( format="csv", delimiter=";", query="SELECT * FROM library ORDER BY page_count DESC", fetch_size=5, ) print(resp)
response = client.sql.query( format: 'csv', delimiter: ';', body: { query: 'SELECT * FROM library ORDER BY page_count DESC', fetch_size: 5 } ) puts response
const response = await client.sql.query({ format: "csv", delimiter: ";", query: "SELECT * FROM library ORDER BY page_count DESC", fetch_size: 5, }); console.log(response);
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
JSON
编辑resp = client.sql.query( format="json", query="SELECT * FROM library ORDER BY page_count DESC", fetch_size=5, ) print(resp)
response = client.sql.query( format: 'json', body: { query: 'SELECT * FROM library ORDER BY page_count DESC', fetch_size: 5 } ) puts response
const response = await client.sql.query({ format: "json", query: "SELECT * FROM library ORDER BY page_count DESC", fetch_size: 5, }); console.log(response);
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=" }
TSV
编辑resp = client.sql.query( format="tsv", query="SELECT * FROM library ORDER BY page_count DESC", fetch_size=5, ) print(resp)
response = client.sql.query( format: 'tsv', body: { query: 'SELECT * FROM library ORDER BY page_count DESC', fetch_size: 5 } ) puts response
const response = await client.sql.query({ format: "tsv", query: "SELECT * FROM library ORDER BY page_count DESC", fetch_size: 5, }); console.log(response);
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
TXT
编辑resp = client.sql.query( format="txt", query="SELECT * FROM library ORDER BY page_count DESC", fetch_size=5, ) print(resp)
response = client.sql.query( format: 'txt', body: { query: 'SELECT * FROM library ORDER BY page_count DESC', fetch_size: 5 } ) puts response
const response = await client.sql.query({ format: "txt", query: "SELECT * FROM library ORDER BY page_count DESC", fetch_size: 5, }); console.log(response);
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
YAML
编辑resp = client.sql.query( format="yaml", query="SELECT * FROM library ORDER BY page_count DESC", fetch_size=5, ) print(resp)
response = client.sql.query( format: 'yaml', body: { query: 'SELECT * FROM library ORDER BY page_count DESC', fetch_size: 5 } ) puts response
const response = await client.sql.query({ format: "yaml", query: "SELECT * FROM library ORDER BY page_count DESC", fetch_size: 5, }); console.log(response);
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="