我正在尝试构建一个查询,其中根据数组中的国家/地区代码过滤父项的子项。如果孩子没有国家/地区字段,我仍然希望返回结果。
我有两个工作查询:
log (n^20) = 20 log n
正式返回一系列结果,其中'AF'位于countries数组中,并且:
{
"query": {
"bool": {
"should": {
"has_child": {
"inner_hits": {},
"type": "service",
"score_mode": "sum",
"query": {
"bool": {
"filter": [
{
"term": {
"countries": "AF"
}
}
]
}
}
}
}
}
}
}
返回我想要的孩子没有国家/地区字段的结果。
我无法弄清楚如何将这两个查询组合起来得到一组合并的结果。也就是说我想要'或'这两套。
答案 0 :(得分:0)
实际上没有对此进行测试,这是一个盲目的建议:
{
"query": {
"bool": {
"should": {
"has_child": {
"inner_hits": {},
"type": "service",
"score_mode": "sum",
"query": {
"bool": {
"must": [
{
"bool": {
"should": [
{
"bool": {
"must": [
{
"exists": {
"field": "countries"
}
},
{
"term": {
"countries": "AF"
}
}
]
}
},
{
"missing": {
"field": "countries"
}
}
]
}
},
{
"term": {
"whatever": "blabla"
}
}
]
}
}
}
}
}
}
}