es 的版本 7.11
模板查询,做个小笔记。
首先做个简单的查询
GET kibana_sample_data_flights/_search/template
{
"source": {
"query": {
"match": {
"{{key01}}":"{{value01}}"
}
}
},
"params": {
"key01":"DestCountry",
"value01": "GB"
}
}
创建查询模板,并使用查询模板查询数据
创建查询模板 | 使用查询模板查询数据 |
POST _scripts/kibana_sample_data_flight_template_01 { "script": { "lang": "mustache", "source": { "query": { "match": { "{{key01}}": "{{value01}}" } }, "size": "{{size}}" } } } | GET kibana_sample_data_flights/_search/template { "id": "kibana_sample_data_flight_template_01", "params": { "key01": "DestCountry", "value01": "GB", "size": "1" } } |
我们可以查看模板的效果
使用 _render 查看效果 | 最终效果 |
GET _render/template { "source": { "query": { "match": { "{{key01}}": "{{value01}}" } } }, "params": { "key01": "DestCountry", "value01": "GB" } } | { "template_output" : { "query" : { "match" : { "DestCountry" : "GB" } } } } |
使用 _render 查看效果 | 最终效果 |
GET _render/template/kibana_sample_data_flight_template_01 { "params": { "key01": "DestCountry", "value01": "GB", "size": "1" } } | { "template_output" : { "query" : { "match" : { "DestCountry" : "GB" } }, "size" : "1" } } |
还可以使用 mustache 的 json 转换方式处理入参
GET _render/template { "source": """{"query":{"terms":{{#toJson}}DestCountryList{{/toJson}}}}""", "params": { "DestCountryList": { "DestCountry.keyword": [ "GB", "CA" ] } } } | { "template_output" : { "query" : { "terms" : { "DestCountry.keyword" : [ "GB", "CA" ] } } } } |
创建查询模板 | 查看效果 | 效果 |
POST _scripts/kibana_sample_data_flight_template_02 { "script": { "lang": "mustache", "source": """{"query":{"terms":{{#toJson}}DestCountryList{{/toJson}}},"size":{{size}}}""" } } | GET _render/template { "id": "kibana_sample_data_flight_template_02", "params": { "DestCountryList": { "DestCountry.keyword": [ "GB", "CA" ] }, "size": "1" } } | { "template_output" : { "query" : { "terms" : { "DestCountry.keyword" : [ "GB", "CA" ] } }, "size" : 1 } } |