Я работаю с elasticsearch Query dsl и не могу найти способ выразить следующее:
Возвратите результаты, которые имеют поле "price" > min budget
и имеют "цена" ‹ максимальный бюджет и имеют has_price=true
, а также возвращают все результаты, которые имеют "has_price=false"
Другими словами, я хотел бы использовать фильтр диапазона только для результатов, для которых поле has_price установлено в true, в противном случае для результатов, в которых для has_price установлено значение false, фильтр не учитывается.
Вот отображение:
{
"formations": {
"mappings": {
"properties": {
"code": {
"type": "text"
},
"date": {
"type": "date",
"format": "dd/MM/yyyy"
},
"description": {
"type": "text"
},
"has_price": {
"type": "boolean"
},
"place": {
"type": "text"
},
"price": {
"type": "float"
},
"title": {
"type": "text"
}
}
}
}
}