我一直在这个网站上效仿
Parameterizing Queries in Solr and Elasticsearch
在ES部分。注意,这是作者正在使用的旧ES版本,但我认为这不会影响这种情况。我使用的是版本1.6的ES。
我有一个模板
{{ES_HOME}}/config/scripts/test.mustache
这看起来像下面的片段。注意
{{q}}
“查询”中的参数。
{
"query": {
"multi_match": {
"query": "{{q}}",
"analyzer": "keyword",
"fields": [
"description^10",
"name^50",
]
}
},
"aggregations": {
"doctype" : {
"terms" : {
"field" : "doctype.untouched"
}
}
}
}
我向
http://localhost:9200/forward/_search/template
具有以下消息正文
{
"template": {
"file": "test",
"params": {
"q": "a"
}
}
}
它运行模板,但获得0次命中,并返回以下内容:
{
"took": 3,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
},
"aggregations": {
"doctype": {
"doc_count_error_upper_bound": 0,
"sum_other_doc_count": 0,
"buckets": []
},
}
}
或者,如果我将“a”硬编码到{{q}}所在的位置,并发布到模板,它将正确返回查询“a”的结果。我在设计中做了什么固有的错误吗?