我在ElasticSearch上移植了一个SQL查询。
查询需要替换IN
子句。
遵循此link我以这种方式实施了IN
:
{
"size": 1,
"query": {
"constant_score": {
"filter": {
"bool": {
"must": [
{
"terms": {
"products.flights.legs.hops.hopFlight.airlineId": [
"ib",
"lh"
]
}
}
]
}
}
}
}
}
它有效,但我可能有一个特例:你看,文档中的hops
字段是一个数组,所以对于一站式的航班,我们有两个跳。
在这种情况下,即使只有两个跃点中的一个有 ib 或 lh ,此查询也能正常工作。它匹配文档,即使两个跃点中只有一个拥有其中一个航空公司而另一个跃点是另一个航空公司,而不包括在我的条款中。
我实际上只希望返回的文件,如airlineId,只有 ib 或 lh 或两者的组合。
是否可以在ElasticSearch上执行此操作?