读《深入理解Elasticsearch》点滴-查询模版(结合官网手册,版本5.1)
1、为什么使用查询模版
让应用程序开发者只需要把查询传递给elasticsearch,而不需要考虑查询语句的构造、查询DSL语法、查询结果过滤等细节知识。
2、使用版本5.1,查询模版在5.6中发生变化。注意。官网地址 https://www.elastic.co/guide/en/elasticsearch/reference/5.1/search-template.html
3、注册查询模版
方法一:使用配置文件,需要copy到集群所有节点
You can register search templates by storing it in the config/scripts directory, in a file using the .mustache extension. In order to execute the stored template, reference it by it’s name under the template key: GET /_search/template
{
"file": "storedTemplate",
"params": {
"query_string": "search for these words"
}
}
方法二:.script索引
You can also register search templates by storing it in the cluster state. There are REST APIs to manage these indexed templates. POST /_search/template/<templatename>
{
"template": {
"query": {
"match": {
"title": "{{query_string}}"
}
}
}
}
4、查看查询模版
This template can be retrieved by GET /_search/template/<templatename> which is rendered as: {
"template": {
"query": {
"match": {
"title": "{{query_string}}"
}
}
}
}
5、删除查询模版
This template can be deleted by DELETE /_search/template/<templatename>
6、使用查询模版
To use an indexed template at search time use: GET /_search/template
{
"id": "templateName",
"params": {
"query_string": "search for these words"
}
}
7、验证查询模版
Validating templatesedit A template can be rendered in a response with given parameters using GET /_render/template
{
"inline": {
"query": {
"terms": {
"status": [
"{{#status}}",
"{{.}}",
"{{/status}}"
]
}
}
},
"params": {
"status": [ "pending", "published" ]
}
} This call will return the rendered template: {
"template_output": {
"query": {
"terms": {
"status": [
"pending",
"published"
]
}
}
}
} status array has been populated with values from the params object. File and indexed templates can also be rendered by replacing inline with file or id respectively. For example, to render a file template GET /_render/template
{
"file": "my_template",
"params": {
"status": [ "pending", "published" ]
}
} Pre-registered templates can also be rendered using GET /_render/template/<template_name>
{
"params": {
"..."
}
}
8、其他
File and indexed templates can also be rendered by replacing inline with file or id respectively. For example, to render a file template GET /_render/template
{
"file": "my_template",
"params": {
"status": [ "pending", "published" ]
}
} Pre-registered templates can also be rendered using GET /_render/template/<template_name>
{
"params": {
"..."
}
} Explainedit You can use explain parameter when running a template: GET /_search/template
{
"file": "my_template",
"params": {
"status": [ "pending", "published" ]
},
"explain": true
} Profilingedit You can use profile parameter when running a template: GET /_search/template
{
"file": "my_template",
"params": {
"status": [ "pending", "published" ]
},
"profile": true
}
读《深入理解Elasticsearch》点滴-查询模版(结合官网手册,版本5.1)的更多相关文章
- 2022年官网下安装Elasticsearch最全版与官网查阅方法(8.1.0最新安装)
目录 一.环境整合(需要提前装好) 构建工具(参考工具部署方式) 二.官方下载Elasticsearch部署安装 1.百度搜索"Elasticsearch",或者访问官网https ...
- 读《深入理解Elasticsearch》点滴-查询二次评分
理解二次评分 二次评分是指重新计算查询返回文档中指定个数文档的得分,es会截取查询返回的前N个,并使用预定义的二次评分方法来重新计算他们的得分 小结 有时候,我们需要显示查询结果,并且使得页面上靠前文 ...
- 读《深入理解Elasticsearch》点滴-聚合-top_hits
以下是官网手册(部分)(v5.1) 直接直接看官网手册 https://www.elastic.co/guide/en/elasticsearch/reference/5.1/search-aggre ...
- elasticsearch聚合查询
作者注:本文系作者自己的理解.希望大家多多交流指正 官网java API term是代表完全匹配,也就是精确查询,搜索前不会再对搜索词进行分词,所以我们的搜索词必须是文档分词集合中的一个 TermsB ...
- 从查询重写角度理解elasticsearch的高亮原理
一.高亮的一些问题 elasticsearch提供了三种高亮方式,前面我们已经简单的了解了elasticsearch的高亮原理; 高亮处理跟实际使用查询类型有十分紧密的关系,其中主要的一点就是muti ...
- 一文读懂一条 SQL 查询语句是如何执行的
2001 年 MySQL 发布 3.23 版本,自此便开始获得广泛应用,随着不断地升级迭代,至今 MySQL 已经走过了 20 个年头. 为了充分发挥 MySQL 的性能并顺利地使用,就必须正确理解其 ...
- mysql系列:加深对脏读、脏写、可重复读、幻读的理解
关于相关术语的专业解释,请自行百度了解,本文皆本人自己结合参考书和自己的理解所做的阐述,如有不严谨之处,还请多多指教. 事务有四种基本特性,叫ACID,它们分别是: Atomicity-原子性,Con ...
- 《深入理解Elasticsearch》README
书目 <深入理解ElasticSearch>拉斐尔·酷奇,马雷克·罗戈任斯基[著]张世武,余洪森,商旦[译] 机械工业出版社,2016.1 本系列包括以下8篇笔记 第01章 Elastic ...
- elasticsearch 分页查询实现方案——Top K+归并排序
elasticsearch 分页查询实现方案 1. from+size 实现分页 from表示从第几行开始,size表示查询多少条文档.from默认为0,size默认为10,注意:size的大小不能超 ...
随机推荐
- 导航页的开发--手机web app开发笔记
好了,的所有的基础知识已经准备完毕了,现在开始制作引导页.这个引导页需要一个HTML文件,JS文件,一个CSS文件.在HBuilderX中根目录下添加“Guid.html”,在JS文件夹添加“myth ...
- JavaScript清除空格、换行,把双引号转换成单引号
1.页面 2.源码 <!DOCTYPE> <html> <head> <meta charset="utf-8"> <titl ...
- python decode encode 解码与编码问题
python 解码与编码问题 1.decode 俗称解码,把编码解码成unicode,例如一个字符串变量 str 是utf-8编码,使用str.decode('utf-8') ,就是把utf-8编码 ...
- CodeForces 988 F Rain and Umbrellas
Rain and Umbrellas 题意:某同学从x=0的点走到x=a的点,路上有几段路程是下雨的, 如果他需要经过这几段下雨的路程, 需要手上有伞, 每一把伞有一个重量, 求走到重点重量×路程的最 ...
- Relatively Prime Graph CF1009D 暴力 思维
Relatively Prime Graph time limit per test 2 seconds memory limit per test 256 megabytes input stand ...
- iOS组件化实践
参考资料: http://wereadteam.github.io/2016/03/19/iOS-Component/#more https://casatwy.com/iOS-Modulizatio ...
- moco 入门及问题解决
废话不多说 下载: http://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/ 选择最新版本下载jar包 启动: 1:在本地jar包 ...
- 15 个有用的 MySQL/MariaDB 性能调整和优化技巧
MySQL 是一个强大的开源关系数据库管理系统(简称 RDBMS).它发布于 1995 年(20年前).它采用结构化查询语言(SQL),这可能是数据库内容管理中最流行的选择.最新的 MySQL 版本是 ...
- 洛谷 P1101单词方阵
我已经,是这个世界上,最幸福的女孩了 ——<末日时 ...
- JavaScript 基础入门
JavaScript 基础入门 JavaScript 的组成 JS 由三部分组成,它们分别是:ECMAScript.DOM.BOM. ECMAScript 因为网景开发了JavaScrip ...