2015-07-01 40 views
0

加载已通过REST API注册的搜索模板时遇到问题。如果搜索模板放置在/ config/scrips /文件夹中,则没有问题。无法加载使用REST API注册的搜索模板

范本已通过POST被registrered到:/_search /模板/ TEMPLATENAME,我可以看到,在模板当我做一个GET到被成功地注册:/_search /模板/ TEMPLATENAME

但是,当我尝试发送使用此搜索模板的请求时,出现错误。如果已经尝试了以下端点:

POST: /_search/template(一个从文档)

POST: [index]/_search/template

POST: [index]/[type]/_search/template

这身搭配:

{ 
"template": { 
"file": "templateName" 
}, 
"params": { 
"userId" : "AU43nSoTZOSzwq_2ZUA4", 
etc... 
} 
} 

但它一直返回该错误:

{ 
"error": "SearchPhaseExecutionException[Failed to execute phase [query_fetch], all shards failed; shardFailures {[UDBaJWKqQ5GpZedzLCtrFg][.scripts][0]: ElasticsearchIllegalArgumentException[Unable to find on disk script templateName]}]", 
"status": 400 
} 

我无法将文件上传到我正在使用的ElasticSearch主机,因此我需要通过POST请求注册它们。我错过了什么?

在此先感谢

回答

0

正确的搜索请求是这样的:

GET /some_index/_search/template 
{ 
    "template": { 
    "id":"templateName" 
    }, 
    "params": { 
    "userId" : "AU43nSoTZOSzwq_2ZUA4", 
    ... 
    } 
}