我正在尝试使用queryDSL在elasticsearch中创建像Mysql(DATASET1-DATASET2)这样的MINUS查询,但找不到方法。
有人可以给我指路吗?
提前发送
最佳答案
您可以将bool查询与must和must not一起使用。
Documentation on the bool query
您可以将对DATASET1的查询放在must中,将对DATASET2的查询放在must_not中:
{
"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
类型的文档。关于elasticsearch - 如何在Elasticsearch中执行MINUS操作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38221457/