繁体   English   中英

elasticsearch | 模板查询| java API

[英]elasticsearch | template query | java API

我试图实现模板查询的功能。 请参阅http://www.elasticsearch.org/guide/en/elasticsearch/reference/current/search-template.html的最后一节

我使用sense添加了一个查询模板。 现在需要通过elasticsearch的JAVA API,我需要执行此查询模板并将结果存储在SearchResponse中。 但是,我无法找到任何与查询模板相关的API。 唯一可用的类文件是TemplateQueryBuilder。 这个类完美地构造了模板查询,但我不确定从Client调用哪个方法来传递TemplateQueryBuilder的对象。 感谢您的帮助。

这是怎么做的:

SearchRequestBuilder request = client;.prepareSearch();
request.setTemplateName(templateName);
request.setTemplateType(ScriptService.ScriptType.INDEXED);
request.setTemplateParams(templateParams);
SearchResponse response = request.get();

你只需要解析响应对象然后..

参考: http//www.elasticsearch.org/guide/en/elasticsearch/client/java-api/current/search.html#java-search-template

请注意,对于API版本2.X,由于不推荐使用request.setTemplateX方法,因此应使用其他方法。 您可以使用与接受的答案类似的request.setTemplate(Template template) ,也可以使用更通用的QueryBuilders方法:

QueryBuilder qb = QueryBuilders.templateQuery(
    "templateName",
    ScriptService.ScriptType.FILE,
    templateParams);

更多内容请阅读: https//www.elastic.co/guide/en/elasticsearch/client/java-api/2.4/java-specialized-queries.html#java-query-dsl-template-query

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM