es(elasticsearch) 实现 and 和 or 查询,举个例子。
实现 "name"=="a" and ("city" == "b" or "city" == "c")
es DSL 查询如下:
{
"query": {
"bool": {
"must": [{
"match_phrase": {
"name": "a"
}
}],
"should": [{
"match_phrase": {
"city": "b"
}
},
{
"match_phrase": {
"city": "c"
}
}],
"minimum_should_match": 1
}
},
"size": 5 //获取 5 条记录
}