首先,这是取自文档:
传递一个字符串数组
GET /_search/template { "template": { "query": { "terms": { "status": [ "{{#status}}", "{{.}}", "{{/status}}" ] } } }, "params": { "status": [ "pending", "published" ] } }
呈现为:
{ "query": { "terms": { "status": [ "pending", "published" ] } }
但是,在我的场景中,我完成了完全相同的模板(至少我是这么认为的),但它对我产生的输出略有不同:
.."filter" : {
"bool" : {
"must" : [{
"terms" : {
"myTerms" : [
"{{#myTerms}}",
"{{.}}",
"{{/myTerms}}"
],
"_cache" : true
}
}
]
}
}..
我后来这样称呼它:
GET /passport/_search/template
{
"template": {
"id": "myTemplate"
},
"params": {
"myTerms": ["1", "2"]
}
}
然而它被渲染为:
.."myTerms" : ["", "1", "2", ""]..
这不是问题,但 myTerms 存储为整数,我想保持这种方式(但如果只有这是解决方案,那么很好,我可以忍受),但是查询会抛出它不能的异常将 "" 转换为整数类型,这是预期的行为
NumberFormatException[对于输入字符串:\"\"]
我应该如何处理?我不想将我的模板存储为文件,我更喜欢它们被索引。
这个 SO 问题很有希望:将整数数组传递给 ElasticSeach 模板,但不清楚,答案并没有解决我的问题(我不允许这样存储我的模板)。
使用的 Elasticsearch 版本:1.6.0
请指教。