开始使用ElasticSearch(六)之搜索模板

这章会比较短,我就描述一个小知识点。
之所以我的文章都很短是因为我觉得那些长篇大论不知道分解的文章很难消化。
我这里简单讲一下搜索模板的配置,因为个人感觉这块相对独立吧。

***Elasticsearch 里面的 Search Template 允许我们提前定义好一个查询的模板,

并且通过参数的方式来接受外部传进来的变量,然后借助 Elasticsearch 内置的

Mustache 脚本引擎来进行渲染。*

看一个简单的通过搜索模板来执行查询的例子

开始使用ElasticSearch(六)之搜索模板

很简单的查询语法,主要有2个主题:
1.source:定义查询的字段名,匹配值,长度
2.params:将字段名,匹配值,长度填进去
这里就跟c#里面的sql语句参数化的写法一模一样。

解析出来的语句就是:

{
"query": { "match" : { "goodsname" : "XPZ1687-TX" } },
"size" : "10"
}

模板定义使用

前面我们了解了模板基础语法,那么身为钻牛角尖的程序猿肯定想,这也不叫模板啊。
模板起码我们要存下来,根据模板编号调用传参数吧。
的确是这样,我接下来简单的演示一下!

开始使用ElasticSearch(六)之搜索模板
这里我定义了一个名为search_template_v001的模板,定义了一个字段的动态匹配条件。
source这里不再是查询值填充了,这里是我们查询成功后想返回的字段值。

接下来,看看怎么调用

开始使用ElasticSearch(六)之搜索模板
结果返回了,而且比刚刚全表扫描的时候简约了,并且只返回了模板中定义的字段。
是不是很简单!
返回字段定义在模板中,以后想修改返回字段只需要修改模板就可以了,不需要发布一
次调用端,而且查询端也是灵活的。

猜你喜欢

转载自blog.51cto.com/15034497/2572031