Я новичок в эластичном поиске, и мне трудно понять, как преобразовать приведенный ниже SQL-запрос в синтаксис ES:
WHERE (id IS NULL OR (id IS NOT NULL AND test = 0))
Я думаю, мне нужно где-то использовать ключевое слово «следует» и, возможно, фильтр, но я не совсем уверен, как сделать запрос в ES.
Ваш запрос должен выглядеть так:
{
"bool": {
"should": [
{
"bool": {
"must_not": [
{
"exists": {
"field": "id"
}
}
]
}
},
{
"bool": [
"must": [
{
"exists": {
"field": "id"
}
},
{
"term": {
"test": {
"value": 0
}
}
}
]
]
}
]
}
}