我正在尝试使用queryDSL在elasticsearch中创建一个像Mysql(DATASET1-DATASET2)这样的MINUS查询,但找不到办法。
有人能指路吗? Tx提前
答案 0 :(得分:1)
您可以使用必须的bool查询,但不能 Documentation on the bool query
您可以将DATASET1的查询放在must和no中的DATASET2查询中:
{
"bool" : {
"must" : {
DATASET1
}
"must_not" : {
DATASET2
}
}
}
例如:
{
"query": {
"filtered": {
"filter": {
"bool": {
"must": {
"range": {
"@timestamp": {
"lte": 1467811620000,
"gte": 1467811520000
}
}
},
"must_not": {
"term": {
"_type": "bus-api"
}
}
}
}
}
}
}
这将返回这两次之间的所有文档,不包括bus-api
类型的文档。