带你读《Elastic Stack 实战手册》之24:——3.4.2.9.Search template(5)

简介: 带你读《Elastic Stack 实战手册》之24:——3.4.2.9.Search template(5)


《Elastic Stack 实战手册》——三、产品能力——3.4.入门篇——3.4.2.Elasticsearch基础应用——3.4.2.9.Search template(4) https://developer.aliyun.com/article/1230599


在配置模板时,我们将FlightNum的 value 配置为{{#toJson}}FlightNum{{/toJson}},即表示占位符FlightNum是一个对象。

 

在配置 params 时,我们将 FlightNum 的值设置为一个 JSON 对象{ "value":"9HY9SWR"}。

 

通过校验请求的返回,可以看到{{#toJson}}FlightNum{{/toJson}}被替换为对象{ "value":"9HY9SWR"}。

 

Mustache 还能在将变量套入模板时做一些处理,比如将数组变量组合成字符串放入模板、设置占位符的默认值,以及对 URL 转码。

 

示例如下:

 

GET _render/template
{
  "source": {
    "query": {
      "term": {
        "FlightNum": "{{#join delimiter='||'}}FlightNums{{/join delimiter='||'}}", #1
        "DestCountry":"{{DestCountry}}{{^DestCountry}}AU{{/DestCountry}}",#2
        "Dest": "{{#url}}{{Dest}}{{/url}}"#3
      }
    }
  },
  "params": {
"FlightNums": [
      "9HY9SWR",
      "adf2c1"
    ],
"Dest":"http://www.baidu.com"
  }
}
​
{
  "template_output" : {
    "query" : {
      "term" : {
        "FlightNum" : "9HY9SWR||adf2c1", # 4
        "DestCountry" : "AU", #5
        "Dest" : "http%3A%2F%2Fwww.baidu.com" # 6
      }
    }
  }
}

第一个模板使用{{#join delimiter='||'}}{{/join delimiter='||'}}设置了数组合并的分割字符为 "||",传参时FlightNums配置的为["9HY9SWR","adf2c1"],而生成的则是 #4 处的9HY9SWR||adf2c1。

 

第二个模板使用{{^DestCountry}}AU{{/DestCountry}}设置了占位符 DestCountry 的默认值为 AU,这样我们在params中并未配置 DestCountry 的值,但生成的 #5 处自动用 AU 替换了占位符。

 

第三个模板我们用{{#url}}{{/url}}声明了此处是一个 URL,需要进行转义,则在 #6 处配置的

http://www.baidu.com变为了http%3A%2F%2Fwww.baidu.com。

 

创作人简介:

骆潇龙,高级 Java 开发工程师,关注大数据技术领域。

博客:https://blog.gaiaproject.club/

 

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。  
相关文章
|
数据可视化 数据管理 API
详解空气质量查询API 使用
本文将介绍的 API 是用于查询中国境内3400多个城市的空气质量数据的接口。该API提供了指定城市的整点观测空气质量数据,包括空气质量指数、首要污染物、空气质量等级、6要素浓度等信息。这些数据可以用于制定健康计划、规划出行路线等。
1081 0
|
监控 Cloud Native 持续交付
云原生技术的崛起与发展
在当今数字化时代,云计算和云原生技术已经成为企业信息技术架构的重要组成部分。本文将探讨云原生技术的定义、特点以及其在当今技术发展中的重要性,同时分析云原生技术对于企业数字化转型的意义和影响。
343 28
|
SQL 存储 关系型数据库
深入理解MySQL中的UPDATE JOIN语句
MySQL的UPDATE JOIN语句用于根据关联表的条件更新数据。示例中,历史记录表有用户账号字段,新增列用于存储用户名。通过UPDATE JOIN,一次性将账号转换为用户名。关键点包括准确的连接条件、谨慎使用WHERE子句以及在更新前进行测试。此操作提高了数据处理效率,但也需小心操作以防止数据错误。
1220 4
深入理解MySQL中的UPDATE JOIN语句
|
JavaScript 前端开发
怎样在vue中隐藏el-form-item中的值、设置输入框的值是只读
这篇文章介绍了在Vue框架中使用Element UI组件库时,如何通过v-if指令和v-model绑定来控制`el-form-item`的显示与隐藏,以及如何通过设置`readonly`属性让输入框变为只读状态。
怎样在vue中隐藏el-form-item中的值、设置输入框的值是只读
|
网络协议 Linux 网络安全
Iptables 命令完整指南
【8月更文挑战第20天】
6106 0
Iptables 命令完整指南
|
前端开发 JavaScript Java
这是一款面向开发者的离线文档查看工具 非常好用!
你要知道的一款面向开发者的离线文档查看工具
这是一款面向开发者的离线文档查看工具 非常好用!
|
IDE Unix 编译器
深入理解CMake:优化构建过程,提升开发效率(上)
深入理解CMake:优化构建过程,提升开发效率
|
SQL 流计算 消息中间件
Flink 1.9 实战:使用 SQL 读取 Kafka 并写入 MySQL
《Flink SQL 1.9.0 技术内幕和最佳实践》,许多小伙伴对演示环节的 Demo 代码非常感兴趣,迫不及待地想尝试下,所以写了这篇文章分享下这份代码。
Flink 1.9 实战:使用 SQL 读取 Kafka 并写入 MySQL
|
JSON 前端开发 Java
根据Token获取用户信息的N种姿势,这种最完美!
根据Token获取用户信息的N种姿势,这种最完美!
1655 0
根据Token获取用户信息的N种姿势,这种最完美!

热门文章

最新文章