假设我创建了一个这样的字段:
"market": [
{
"name": ["name1","name2","name3","name4","name5" ]
},
{"place":["P1","P2","P3"]}
]
现在,我想检查字段“name”是否包含值“name3”或“name4”。
我试过这个过滤器。
filter {
elasticsearch {
hosts => "localhost:9200"
index=>"admin"
query => 'market.name:(name3 OR name4)'
sort => "_id:asc"
fields => {host_machine => 'host_machine' }
}
}
但它没有做任何事情(没有崩溃,没有错误信息,只是没有做任何事情)。
我做错了什么?
答案 0 :(得分:0)
它工作正常..只是市场字段不应该是嵌套类型..在这种情况下(如果它是嵌套的)我们使用query_template选项,如下所示:
"query": {
"nested" : {
"path" : "market",
"query" : {
"bool" : {
"filter" :
{"query_string" : {
"query" : "market.name:(name3 OR name4)"
}
}
}
}
}
}