搜索场景
有些时候,对于一些搜索刚入门的同学来说,提升 ElasticSearch 的搜索性能以及如何应对各种场景下的复杂搜索来采用最合适的 DSL,,无疑是非常苦难的。而且对于公司来说,最重要的是如何能够快速的产生业务价值,所以一般差不多点的公司都会有专门的 搜索优化团队来出模板,业务同学只要调用特定的客户端便可以。
ElasticSearch 为了提升专业性,专门提供了一种查询API,也就是接下来要介绍的 searchTemplate。
SearchTemplate
SearchTemplate 是一个查询模板,是ElasticSearch 提供的模板语言。其实走得是 script 脚本,lang 语言使用的是 mustache。
语法:POST _scripts/模板名称 + 请求体(“关键词 mustache”)
- lang 指定脚本语言
- source 指定要配置的搜索语句
- { {}} 指定你要替换的值
POST _scripts/movies-search
{
"script": {
"lang": "mustache",
"source": {
"_source": [
"title",
"genre",
"year"
],
"size": 20,
"query": {
"bool": {
"must": [
{
"match": {
"title": "{
{must_value}}"
}
}
],
"filter": {
"range": {
"year": {
"lte": "{
{lte}}",
"gte":