各个版本之间的使用命令还是有些差别,前段时间用6.1.3,不管是使用head还是cerebro,提交时总是碰到各种问题,部分原因就是以前看到的一些资料,版本较早,命令有些差异,所以把一些内容记下来,免得忘了。
官方地址 https://www.elastic.co/guide/en/elasticsearch/reference/6.8/search-template.html
cerebro系统操作如下:
下面的命令中:{es_path}替换为es的路径;{template_name}替换为模板名;{index_name}替换为索引名
1.创建模板
post http://{es_path}/_scripts/{template_name}
{
"script": {
"lang": "mustache",
"source": {
"query": {
"match": {
"text": "{{query_string}}"
}
}
}
}
}
2.查看模板
get http://{es_path}/_scripts/{template_name}
3.解析模板
get http://{es_path}/_render/template
{
"id":"tmp_query",
"params":{
"query_string":"文本"
}
}
4.查询模板
get/post http://{es_path}/{index_name}/_search/template
{
"id":"tmp_query",
"params":{
"query_string":"卫衣"
}
}
查看全部模板,在6.x中使用 _cluster/state ,结果中的metadata中的 stored_scripts。
业务中查询比较复杂的时候使用模板是个不错的选择,而且有些逻辑调整可以直接通过模板修改就可以完成,避免每次查询逻辑的调整,都需要重新发布代码,但需要做好模板的审核,如果能够在现有基础上进行二次开发,来进行模板的验证、审核、发布就更为理想。