我正在创建一个Elasticsearch插件,我希望将模板查询构建为内联文本字符串并执行它。
对于Elasticsearch 6.1.2使用小胡子SearchTemplateRequestBuilder
并通过此代码获取响应:
SearchResponse sr = new SearchTemplateRequestBuilder(nodeClient)
.setScript("{\n" +
" \"query\" : {\n" +
" \"match\" : {\n" +
" \"gender\" : \"{{param_gender}}\"\n" +
" }\n" +
" }\n" +
"}")
.setScriptType(ScriptType.INLINE)
.setScriptParams(template_params)
.setRequest(new SearchRequest())
.get()
.getResponse();
这是他们的文档中的一个例子。
我发现此例外有问题:
"class_cast_exception",
"reason": "org.elasticsearch.script.mustache.SearchTemplateRequest cannot be cast to org.elasticsearch.script.mustache.SearchTemplateRequest"
那么,我试图实施的是否有解决方案?我怎样才能避免异常?