我想查询的数据user_id是'1'和name是'John'。编写常用的SQL很容易:
user_id
'1'
name
'John'
select * from t where user_id = '1' and name = 'John';
但是,对Elasticsearch进行查询对我来说并不容易。
首先,我查询了user_id:
{ "query" : { "match" : { "user_id" : "1" } } }
结果是我所期望的。
然后,我查询了name:
{ "query" : { "match" : { "name" : "John" } } }
它也运作良好。
但是我无法使用和操作将2个条件连接在一起的查询。如何将这两个匹配查询合并为一个使用和操作?
您需要的是布尔查询,您可以在其中输入所有单个查询:
(我无法测试查询,这可能是错误的,但是bool-query是您问题的答案)
{ "bool" : { "must" : [{ "match" : { "user_id" : "1" }, "match" : { "name" : "John" } }] } }