我想查询的数据user_id是'1'和name是'John'.编写常用的SQL很容易:
select * from t where user_id = '1' and name = 'John';
Run Code Online (Sandbox Code Playgroud)
但是我对弹性搜索进行查询并不容易.
首先,我查询了user_id:
{
"query" : {
"match" : {
"user_id" : "1"
}
}
}
Run Code Online (Sandbox Code Playgroud)
结果是我的预期.
然后,我查询name:
{
"query" : {
"match" : {
"name" : "John"
}
}
}
Run Code Online (Sandbox Code Playgroud)
它运作良好.
但我无法通过和操作加入2个条件的查询.如何将这两个匹配查询合并为一个使用和操作?
Tho*_*ten 11
你需要的是一个bool查询,你可以在其中放置所有单个查询:
(我无法测试查询,可能是错误的,但是bool查询是你问题的答案)
{
"bool" : {
"must" : [{
"match" : {
"user_id" : "1"
},
"match" : {
"name" : "John"
}
}]
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4798 次 |
| 最近记录: |