我想在ElasticSearch中写这样的东西:
SELECT *
FROM ...
WHERE name IS NULL OR name IN ("a","b","c");
我可以写" IS NULL"部分使用:
{
"query" :
{
"bool" : {
"must_not": {
"exists": {
"field": "name"
}
}
}
}
}
" IN列表"部分:
{
"query" :
{
"bool" : {
"should" : [
{
"terms" : {
"name" : [
"a", "b", "c"
]
}
}
]
}
}
}
但是我找不到使用OR合并这两个查询的方法(当然不是AND)。
由于
答案 0 :(得分:0)
您可以使用bool/should
来结合两者
{
"query": {
"bool": {
"should": [
{
"terms": {
"name": [
"a",
"b",
"c"
]
}
},
{
"bool": {
"must_not": {
"exists": {
"field": "name"
}
}
}
}
]
}
}
}