Для этого решения я переставил вашу комбинацию логических выражений в «Изображение И страна И (расстояние ИЛИ город)».
Вы используете запрос о существовании для проверки нулевого значения, запрос диапазона длямаксимальное расстояние (учитывая, что ваше расстояние хранится в числовом поле) и запросы по запросу для страны и города. Затем вы комбинируете их с логическими запросами, чтобы соответствовать логическому выражению, показанному выше:
{
"query": {
"bool": {
"must": [
{
"exists": { "field": "Image" }
},
{
"term": { "country" : { "value": "AUS" } }
},
{
"bool": {
"should": [
{
"range": { "distance": { "lt": "50" } }
},
{
"term": { "city": { "value": "" } }
}
]
}
}
]
}
}
}