У меня проблема с запросом es в случае, когда первичное поле не существует, а не вложенное. У меня есть эти данные:
[
{
"id": "1",
"offers": [
{
"id": "777",
"offers": null,
"name": "Apple"
}
]
},
{
"id": "2",
"offers": null
}
]
, и мне нужно получить элемент, в котором основное поле offers
не существует или равно null (те, у которых есть id=2
), а не вложенное (id=1
) .
Я ожидал, что будет работать следующий фильтр:
"query": {
"bool": {
"must_not": {
"bool": {
"must": [
{
"exists": {
"field": "offers"
}
}
]
}
}
}
}
Но этот фильтр дает мне элемент с id = 1
, где вложенный offers
равен нулю. Как получить элемент, в котором не существует именно первичного поля (id=2
), а не вложенного?