我需要搜索如下的嵌套字段:
"bool": {
"should": {
"nested": {
"path": "partnerData",
"query": {
"query_string": {
"query": "Dimmi",
"fields": ["partnerData.partnerName"]
}
}
}
}
}
我现在需要做的是从查询参数中选择此过滤器。
如果online-booking: true
应用此过滤器,则online-booking: false
不应用过滤器。
我怎样才能做到这一点?
谢谢, 马可
答案 0 :(得分:0)
您应该使用多个bool查询。 第一个查询确保在线预订是错误的,第二个确保其真实和第二个条件也是如此。至少有一个查询必须匹配才能返回
xcasset
答案 1 :(得分:0)
"bool": {
"should": [{
"nested": {
"path": "partnerData",
"query": {
"query_string": {
"query": "Dimmi",
"fields": ["partnerData.partnerName"]
}
}
}
},{
"query_string": {
"query": "$negate-online-booking$",
"default_field": "name"
}
}]
}
如果negate-online-booking
与_exists_:name
不同,则会应用过滤器。如果其值等于_exists_:name
,则不会应用过滤器。
如果有更好的方法可以达到相同的效果,请提出建议。