[toc]

1. API通用可选参数

1.1. 好看、格式化后果数据

  • ?pretty=true 格式化为json
  • ?format=yaml 后果展现为 yml
  • ?human=false 敞开 1h/1kb等人性化转换

1.2 响应过滤:filter_path

1.2.1 响应过滤用法

原来申请:

GET /bank/_doc/1

原响应:

{  "_index" : "bank",  "_type" : "_doc",  "_id" : "1",  "_version" : 3,  "_seq_no" : 1001,  "_primary_term" : 1,  "found" : true,  "_source" : {    "account_number" : 1,    "balance" : 39225,    "firstname" : "Amber",    "lastname" : "Duke",    "age" : 32,    "gender" : "M",    "address" : "880 Holmes Lane",    "employer" : "Pyrami",    "email" : "amberduke@pyrami.com",    "city" : "Brogan",    "state" : "IL"  }}

加上响应过滤:采纳逗号分隔的过滤器列表

GET /bank/_doc/1?filter_path=_version,_source.firstname,_source.age,_source.balance

加上后的响应:

{  "_version" : 3,  "_source" : {    "balance" : 39225,    "firstname" : "Amber",    "age" : 32  }}

1.2.2 响应过滤反对通配符 "*"

申请:

# 响应过滤GET /bank/_doc/1?filter_path=_version,_source.*name,_source.age,_source.*e

响应:

{  "_version" : 3,  "_source" : {    "balance" : 39225,    "firstname" : "Amber",    "lastname" : "Duke",    "age" : 32,    "state" : "IL"  }}

原响应参考上边 1.2.1所列;

1.2.3 响应过滤:排除字段 "-"

申请:

GET /bank/_doc/1?filter_path=-_type,-_source

过滤后响应:

{  "_index" : "bank",  "_id" : "1",  "_version" : 3,  "_seq_no" : 1001,  "_primary_term" : 1,  "found" : true}

可见, _type字段和_source节点,都被排除掉了;

1.2.4 响应过滤:*-混用时,先排除,再过滤

例1:

GET /bank/_doc/1?filter_path=_version,_source.*name,_source.age,_source.*e,-_source

后果:

{  "_version" : 3}

例2:

GET /bank/_doc/1?filter_path=_version,_source.*name,_source.age,_source.*e,-_source.lastname

后果:

{  "_version" : 3,  "_source" : {    "balance" : 39225,    "firstname" : "Amber",    "age" : 32,    "state" : "IL"  }}

1.3 工夫单位

2d for 2 days

dDays
hHours
mMinutes
sSeconds
msMilliseconds
microsMicroseconds
nanosNanoseconds

 1.4 字节单位

bBytes
kbKilobytes
mbMegabytes
gbGigabytes
tbTerabytes
pbPetabytes

1.5 打印谬误堆栈形迹:error_trace=true

看上面3个输入

GET /library/_search?size=1&filter_path=hits.hits._source
{  "hits" : {    "hits" : [      {        "_source" : {          "title" : "Book #1",          "rating" : 200.1        }      }    ]  }}

这个是正确时的输入.

咱们传个谬误参数 size=Y

GET /library/_search?size=Y&filter_path=hits.hits._source

输入:

{  "error": {    "root_cause": [      {        "type": "illegal_argument_exception",        "reason": "Failed to parse int parameter [size] with value [Y]"      }    ],    "type": "illegal_argument_exception",    "reason": "Failed to parse int parameter [size] with value [Y]",    "caused_by": {      "type": "number_format_exception",      "reason": "For input string: \"Y\""    }  },  "status": 400}

上面再看个残缺堆栈信息的形式: error_trace

GET /library/_search?size=Y&filter_path=hits.hits._source&error_trace=true

outpu:

{  "error": {    "root_cause": [      {        "type": "illegal_argument_exception",        "reason": "Failed to parse int parameter [size] with value [Y]",        "stack_trace": "[Failed to parse int parameter [size] with value [Y]]; nested: IllegalArgumentException[Failed to parse int parameter [size] with value [Y]]; nested: NumberFormatException.........."      }    ],    "type": "illegal_argument_exception",    "reason": "Failed to parse int parameter [size] with value [Y]",    "caused_by": {      "type": "number_format_exception",      "reason": "For input string: \"Y\"",      "stack_trace": "java.lang.NumberFormatException: For input string: \"Y\"\n\tat java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:68)................"  },  "status": 400}

........省去了很多输入信息!