假设我创建了一个这样的文档:
PUT idx/type/1
{
"the_field": [1,2,3]
}
Run Code Online (Sandbox Code Playgroud)
我可以使用GET/idx/type/1检索我的文档:
{
"_index": "idx",
"_type": "type",
"_id": "1",
"_version": 1,
"found": true,
"_source": {
"the_field": [
1,
2,
3
]
}
}
Run Code Online (Sandbox Code Playgroud)
现在,我想检查字段"the_field"是否包含值2.我知道我可以使用term子句,但我需要使用过滤器脚本来检查这个,所以我试过:
POST /idx/typ/_search
{
"query": {
"match_all": {}
},
"filter": {
"script": {
"script": "doc['the_field'].values.contains(2)"
}
}
}
Run Code Online (Sandbox Code Playgroud)
并没有得到任何结果:
{
"took": 6,
"timed_out": false,
"_shards": {
"total": 5,
"successful": 5,
"failed": 0
},
"hits": {
"total": 0,
"max_score": null,
"hits": []
}
}
Run Code Online (Sandbox Code Playgroud)
要测试我的mevl脚本语法是否正确,我尝试这样做:
POST /idx/type/_search
{
"query": {
"match_all": {} …Run Code Online (Sandbox Code Playgroud)