- Java Transport Client (deprecated): other versions:
- Preface
- Maven Repository
- Deploying in JBoss EAP6 module
- Client
- Index API
- Get API
- Delete API
- Update API
- Bulk API
- Search API
- Count API
- Delete By Query API
- Facets
- Aggregations
- Percolate API
- Query DSL - Queries
- Match Query
- MultiMatch Query
- Boolean Query
- Boosting Query
- IDs Query
- Constant Score Query
- Disjunction Max Query
- Fuzzy Like This (Field) Query (flt and flt_field)
- FuzzyQuery
- Has Child / Has Parent
- MatchAll Query
- More Like This Query (mlt)
- Prefix Query
- QueryString Query
- Range Query
- Span Queries (first, near, not, or, term)
- Term Query
- Terms Query
- Top Children Query
- Wildcard Query
- Nested Query
- Indices Query
- GeoShape Query
- Query DSL - Filters
- And Filter
- Bool Filter
- Exists Filter
- Ids Filter
- Limit Filter
- Type Filter
- Geo Bounding Box Filter
- GeoDistance Filter
- Geo Distance Range Filter
- Geo Polygon Filter
- Geo Shape Filter
- Has Child / Has Parent Filters
- Match All Filter
- Missing Filter
- Not Filter
- Or Filter
- Prefix Filter
- Query Filter
- Range Filter
- Script Filter
- Term Filter
- Terms Filter
- Nested Filter
- Caching
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.