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

本文涉及的产品
检索分析服务 Elasticsearch 版,2核4GB开发者规格 1个月
简介: 带你读《Elastic Stack 实战手册》之24:——3.4.2.9.Search template(1)

3.4.2.9.Search template


创作人:骆潇龙

 

Elasticsearch 允许使用模板语言 mustache 来预设搜索逻辑,在实际搜索时,通过参数中的键值,对来替换模板中的占位符,最终完成搜索。该方式将搜索逻辑封闭在 Elasticsearch 中,可以使下游服务,在不知道具体搜索逻辑的情况下完成数据检索。我们以 Kibana 自带的航班数据kibana_sample_data_flights为基础,以按航班号搜索为例,简单介绍搜索模板的使用。

 

第一步,创建 ID 为 testSearchTemplate 的搜索模板,语句如下


POST _scripts/testSearchTemplate
{ 
  "script": {
    "lang": "mustache",   #使用 mustache 模板语言
    "source": {   # 脚本内容
      "query": {    # 搜索逻辑
        "term": {
          "FlightNum": {
            "value": "{{FlightNum}}"  # 占位符 FlightNum
          }
        }
      }
    }
  }
}

第二步,传参搜索数据,语句如下


GET kibana_sample_data_flights/_search/template
{
  "id": "testSearchTemplate",     # 使用的模板ID
  "params": {
    "FlightNum": "9HY9SWR"    # 占位符替换的值
  }
}

以上两步就是使用模板搜索数据,该逻辑等同于下面这个搜索


GET kibana_sample_data_flights/_search
{
  "query": {
    "term": {
      "FlightNum": {
        "value": "9HY9SWR"
      }
    }
  }
}


 

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


相关实践学习
使用阿里云Elasticsearch体验信息检索加速
通过创建登录阿里云Elasticsearch集群,使用DataWorks将MySQL数据同步至Elasticsearch,体验多条件检索效果,简单展示数据同步和信息检索加速的过程和操作。
ElasticSearch 入门精讲
ElasticSearch是一个开源的、基于Lucene的、分布式、高扩展、高实时的搜索与数据分析引擎。根据DB-Engines的排名显示,Elasticsearch是最受欢迎的企业搜索引擎,其次是Apache Solr(也是基于Lucene)。 ElasticSearch的实现原理主要分为以下几个步骤: 用户将数据提交到Elastic Search 数据库中 通过分词控制器去将对应的语句分词,将其权重和分词结果一并存入数据 当用户搜索数据时候,再根据权重将结果排名、打分 将返回结果呈现给用户 Elasticsearch可以用于搜索各种文档。它提供可扩展的搜索,具有接近实时的搜索,并支持多租户。
相关文章
|
编解码 JSON Java
带你读《Elastic Stack 实战手册》之24:——3.4.2.9.Search template(5)
带你读《Elastic Stack 实战手册》之24:——3.4.2.9.Search template(5)
111 0
|
JSON 安全 API
带你读《Elastic Stack 实战手册》之24:——3.4.2.9.Search template(2)
带你读《Elastic Stack 实战手册》之24:——3.4.2.9.Search template(2)
|
缓存 索引
带你读《Elastic Stack 实战手册》之24:——3.4.2.9.Search template(3)
带你读《Elastic Stack 实战手册》之24:——3.4.2.9.Search template(3)
|
JSON 数据格式
带你读《Elastic Stack 实战手册》之24:——3.4.2.9.Search template(4)
带你读《Elastic Stack 实战手册》之24:——3.4.2.9.Search template(4)
100 0
|
API 索引
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(3)
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(3)
101 0
|
JSON 安全 API
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(2)
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(2)
115 0
|
JSON 数据格式 索引
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(6)
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(6)
104 0
|
索引
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(5)
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(5)
|
索引
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(1)
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(1)
|
索引
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(7)
带你读《Elastic Stack 实战手册》之23:——3.4.2.8.Index template(7)