IMPORTANT: No additional bug fixes or documentation updates
will be released for this version. For the latest information, see the
current release documentation.
Using Search Templates
edit
IMPORTANT: This documentation is no longer updated. Refer to Elastic's version policy and the latest documentation.
Using Search Templates
editSee Search Template documentation
Define your template parameters as a Map<String,Object>
:
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:
{ "template" : { "query" : { "match" : { "gender" : "{{param_gender}}" } } } }
Execute it with:
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
:
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
:
SearchResponse sr = client.prepareSearch() .setTemplateName("template_gender") .setTemplateType(ScriptService.ScriptType.INDEXED) .setTemplateParams(template_params) .get();
Was this helpful?
Thank you for your feedback.