## 概述
使用kinaba的Dev Tools创建一个索引并新增几条数据,然后创建mustache脚本,并通过模板脚本进行查询。
## 操作
1. 新增student mapping
PUT student
{
"mappings": {
"properties": {
"name": {
"type": "keyword"
},
"age": {
"type": "long"
},
"address": {
"type": "text"
}
}
}
}
2. 新增数据
POST tanjie/_doc/
{
"name": "tanjie",
"age": 28,
"address": "广州"
}
POST tanjie/_doc/
{
"name": "whh",
"age": 29,
"address": "河南"
}
3. 检查mapping和数据是否有效
GET student/_mapping
GET student/_search
4. 创建mustache查询模板
POST _scripts/test_template
{
"script": {
"lang": "mustache",
"source": {
"query": {
"term": {
"{{param_key}}": "{{param_value}}"
}
}
}
}
}
5. 渲染模板
GET _render/template
{
"id": "test_template",
"params": {
"param_key": "name",
"param_value": "tanjie"
},
"explain": true
}
6. 基于模板查询
GET student/_search/template
{
"id": "test_template",
"params": {
"param_key": "name",
"param_value": "tanjie"
}
}
## 总结
ES的mustache模板能够方便我们实现复杂的ES Query DSL。