parent
171e718f88
commit
778f76adea
|
@ -145,3 +145,70 @@ DateHistogram agg2 = sr.getAggregations().get("agg2");
|
|||
|
||||
See <<java-aggs,Aggregations Java API>>
|
||||
documentation for details.
|
||||
|
||||
[[java-search-template]]
|
||||
=== Using Search Templates
|
||||
|
||||
See {ref}/search-template.html[Search Template] documentation
|
||||
|
||||
Define your template parameters as a `Map<String,Object>`:
|
||||
|
||||
[source,java]
|
||||
--------------------------------------------------
|
||||
Map<String, Object> template_params = new HashMap<>();
|
||||
template_params.put("param_gender", "male");
|
||||
--------------------------------------------------
|
||||
|
||||
You can use your stored search templates in `config/scripts`.
|
||||
For example, if you have a file named `config/scripts/template_gender.mustache` containing:
|
||||
|
||||
[source,js]
|
||||
--------------------------------------------------
|
||||
{
|
||||
"template" : {
|
||||
"query" : {
|
||||
"match" : {
|
||||
"gender" : "{{param_gender}}"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
--------------------------------------------------
|
||||
|
||||
Execute it with:
|
||||
|
||||
[source,java]
|
||||
--------------------------------------------------
|
||||
SearchResponse sr = client.prepareSearch()
|
||||
.setTemplateName("template_gender")
|
||||
.setTemplateType(ScriptService.ScriptType.FILE)
|
||||
.setTemplateParams(template_params)
|
||||
.get();
|
||||
--------------------------------------------------
|
||||
|
||||
You can also store your template in a special index named `.scripts`:
|
||||
|
||||
[source,java]
|
||||
--------------------------------------------------
|
||||
client.preparePutIndexedScript("mustache", "template_gender",
|
||||
"{\n" +
|
||||
" \"template\" : {\n" +
|
||||
" \"query\" : {\n" +
|
||||
" \"match\" : {\n" +
|
||||
" \"gender\" : \"{{param_gender}}\"\n" +
|
||||
" }\n" +
|
||||
" }\n" +
|
||||
" }\n" +
|
||||
"}").get();
|
||||
--------------------------------------------------
|
||||
|
||||
To execute an indexed templates, use `ScriptService.ScriptType.INDEXED`:
|
||||
|
||||
[source,java]
|
||||
--------------------------------------------------
|
||||
SearchResponse sr = client.prepareSearch()
|
||||
.setTemplateName("template_gender")
|
||||
.setTemplateType(ScriptService.ScriptType.INDEXED)
|
||||
.setTemplateParams(template_params)
|
||||
.get();
|
||||
--------------------------------------------------
|
||||
|
|
Loading…
Reference in New Issue