正在加载

响应数据格式

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="
© . All rights reserved.