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

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

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



API介绍

 

下面我们从搜索模板的生命周期:创建、查看、使用、删除来展开介绍模板搜索相关 API。

 

准备

 

在正式介绍之前,我们先来说一说关于模板搜索的几个预备知识。

 

首先,如果使用的 Elasticsearch 集群开启了安全功能,那么角色对操作的索引必须要有read权限。


其次,搜索模板使用的语法是Mustache

 

更多的关于该种脚本语言的介绍以及功能请查看其官方文档

https://mustache.github.io/mustache.5.html

 

最后,模板搜索属于 Elasticsearch 中 Script 功能的扩展, Script 的限定及用法基本都适用于模板搜索。比如,集群关于 Script 的配置也会影响模板搜索,配置项script.allowed_types可规范模板搜索接受的类型( inline / stored / both ),script.allowed_contexts也会限制模板搜索可进行的操作。

 

创建

 

搜索模板的创建与 Elasticsearch 其它脚本的创建一样,都是发送 1 个POST请求即可。


如下所示:


POST _scripts/<templateId>  # 1
{
  "script": {
    "lang": "mustache", # 2
    "source": {   # 3
      "query": {
          "term": {
            "FlightNum": {
              "value": "{{FlightNum}}"  # 可变参数 FlightNum
            }
          }
        }
    }
  }
}

1、_scripts/发送 POST 请求来创建搜索模板,其中是你为该模板设置的 ID,搜索时会用到该 ID

2、lang 参数配置的是搜索模板使用的脚本语言为mustache

3、source 参数配置的是搜索模板的具体内容,该部分的格式参照 Elasticsearch 搜索的请求 body,需要搜索时填充的值使用mustache语法,配置占位符即可,比如本例中的占位符就是

{{FlightNum}}

 

查看



当我们想查看之前创建的模板内容,或者验证某个 ID 的模板是否存在时,可以向_scripts/发送 GET 请求来获取模板的具体内容。

 

示例如下:


GET _scripts/<templateId>  # 1
{
  "_id" : "testSearchTemplate",  # 2
  "found" : true,  # 3
  "script" : {   # 4
    "lang" : "mustache", 
    "source" : """{"query":{"term":{"FlightNum":{"value":"{{FlightNum}}"}}}}""", 
    "options" : {  # 5
      "content_type" : "application/json; charset=UTF-8"
    }
  }
}

1、请求的 path 为_scripts/,其中为你要查询的模板 ID,请求类型为GET

2、返回的 body 中,_id 属性再次表明此次查询的模板 ID,本示例查询的是之前创建的testSearchTemplate模板。

3、found 属性表明此次查询是否查到结果,如果模板 ID 存在则此值为 true,反之为 false

4、script 就是该搜索模板的具体内容与保存时相同。核心有 lang 属性表示脚本语法,source属性存放脚本具体内容

5、script 属性中的 Options 属性是非必要其它脚本属性,默认会有 content_type 属性,该属性保存查询时 http 请求的content-type,默认为application/json; charset=UTF-8



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

相关实践学习
以电商场景为例搭建AI语义搜索应用
本实验旨在通过阿里云Elasticsearch结合阿里云搜索开发工作台AI模型服务,构建一个高效、精准的语义搜索系统,模拟电商场景,深入理解AI搜索技术原理并掌握其实现过程。
ElasticSearch 最新快速入门教程
本课程由千锋教育提供。全文搜索的需求非常大。而开源的解决办法Elasricsearch(Elastic)就是一个非常好的工具。目前是全文搜索引擎的首选。本系列教程由浅入深讲解了在CentOS7系统下如何搭建ElasticSearch,如何使用Kibana实现各种方式的搜索并详细分析了搜索的原理,最后讲解了在Java应用中如何集成ElasticSearch并实现搜索。 &nbsp;
相关文章
|
3月前
|
JSON 缓存 算法
如何通过API获取1688商品类目数据:技术实现指南
1688开放平台提供alibaba.category.get接口,支持获取全量商品类目树。RESTful架构,返回JSON数据,含类目ID、名称、层级等信息。需注册账号、创建应用并授权。请求需签名认证,QPS限10次,建议缓存更新周期≥24小时。
364 2
|
3月前
|
资源调度 监控 测试技术
《SaaS多租户实战指南:从灰度发布到故障容错的全链路架构设计》
本文聚焦企业级团队协作SaaS应用的多租户架构迭代实践,针对租户规模差异大、资源冲突、定制化与标准化矛盾等核心痛点展开。初期简易多租户模式因资源共享导致故障后,作者重构架构:采用“独立数据库+共享数据库+租户标识”的混合隔离方案,解决数据隔离与成本平衡问题;搭建基于租户画像的弹性资源调度体系,通过预测式调度与实时调整提升资源利用率;以“核心标准化+定制插件化”架构,缩短定制需求响应时间;构建分层灰度发布与故障容错机制,将版本故障发生率大幅降低。最终总结出SaaS多租户架构需“以租户为中心”,在隔离、共享、定制间找到精细化平衡点的核心经验。
312 6
|
存储 NoSQL 关系型数据库
支持中低频量化交易的单机数据平台
支持中低频量化交易的单机数据平台,使用InfluxDB存储实时交易数据,HDF5存储静态历史数据用于回测。
5338 0
|
6月前
|
安全 API 数据安全/隐私保护
低代码革命:API无代码集成如何让企业“3天上线一个生态”?
在数字化转型浪潮中,API成为释放数据价值、提升企业效率的核心。本文详解API架构设计、安全实践与跨平台集成,为CTO提供效率提升指南,涵盖微服务、安全认证、协议选择、低代码集成及未来趋势,助力企业构建敏捷、安全、高效的数字生态。
|
应用服务中间件 nginx 缓存
一文掌握 Nginx 反向代理:从入门到生产级配置
本文全面解析Nginx反向代理,涵盖基础概念、负载均衡策略、SSL终止、缓存、安全防护及生产级配置,助你从入门到精通,构建高性能、高可用的Web架构。
814 1
|
4月前
|
存储 算法 安全
“卧槽,系统又崩了!”——别慌,这也许是你看过最通俗易懂的分布式入门
本文深入解析分布式系统核心机制:数据分片与冗余副本实现扩展与高可用,租约、多数派及Gossip协议保障一致性与容错。探讨节点故障、网络延迟等挑战,揭示CFT/BFT容错原理,剖析规模与性能关系,为构建可靠分布式系统提供理论支撑。
275 2
|
7月前
|
人工智能 自然语言处理 数据可视化
揭秘 GitHub 154k star 爆款神器!一文掌握Stable Diffusion WebUI 的实用秘诀与场景
Stable Diffusion WebUI(A1111)是基于Gradio的开源图像生成界面,支持文本生成图像、图像生成图像等多种功能。自2022年发布以来,它凭借直观的滑块与开关设计、丰富的扩展生态(如ControlNet、LoRA等),成为兼容Windows、Linux、macOS的热门工具。其核心亮点包括多模式生成(txt2img、img2img等)、细节参数控制及个性化UI设置。适用于艺术创作、产品设计、广告营销等多个场景,对比ComfyUI和Fooocus,A1111以全面的功能和易用性脱颖而出,是AI绘图领域的首选工具之一。
817 0
|
7月前
|
缓存 监控 负载均衡
电商API性能优化全方位策略剖析
电商API性能优化对提升用户体验与业务效率至关重要。本文从八个方面探讨优化策略:1) 数据库优化,如索引设计、查询语句精简及冷热数据分离;2) 缓存策略,利用本地与分布式缓存减少数据库压力;3) 异步处理,通过任务队列提高响应速度;4) 负载均衡,分散高并发请求;5) 代码优化,改进算法与重构低效代码;6) 接口设计优化,标准化与模块化设计;7) 安全措施,强化数据加密与身份验证;8) 持续监控与优化,确保长期稳定运行。综合应用这些策略可显著提升电商API性能与用户体验。
|
网络协议 安全 Shell
【内网—内网转发】——代理转发_ew(Earthworm)代理转发
【内网—内网转发】——代理转发_ew(Earthworm)代理转发
906 4
|
9月前
|
SQL 前端开发 Java
深入分析 Spring Boot 项目开发中的常见问题与解决方案
本文深入分析了Spring Boot项目开发中的常见问题与解决方案,涵盖视图路径冲突(Circular View Path)、ECharts图表数据异常及SQL唯一约束冲突等典型场景。通过实际案例剖析问题成因,并提供具体解决方法,如优化视图解析器配置、改进数据查询逻辑以及合理使用外键约束。同时复习了Spring MVC视图解析原理与数据库完整性知识,强调细节处理和数据验证的重要性,为开发者提供实用参考。
399 0

热门文章

最新文章