目录
?
布尔查询是一个或多个查询子句的组合。子查询的组合方式有:
案例:搜索名字包含“如家”,价格不高于400,在坐标31.21121.5周围10km范围内的酒店
GET? ?/hotel/_search
{
????????"query" : {
????????????????"bool" : {
????????????????????????"must" : [
? ? ? ? ? ? ? ? ? ? ? ? ?????????{
????????????????????????????????"match": {"name":"如家"}? ? ? ? ? ? ? ? ? ? ? ? ????????}
????????????????????????],
????????????????????????"must_not" : [? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {
????????????????????????????????"range": {?"price": { "gt" : 400 }}? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ],
????????????????????????"filter" : [
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? {
????????????????????????????????????????"geo_distance" : {????????????????????????????????????????????????"distance":"10km" ,
????????????????????????????????????????????????"location": "lat": 31.21 , "lon": 121.5}
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? }
? ? ? ? ? ? ? ? ? ? ? ? ]
? ? ? ? ? ? ? ? }
? ? ? ? }?
}
bool查询有几种逻辑关系?
- must:必须匹配的条件,可以理解为 "与"
- should:选择性匹配的条件,可以理解为 "或"
- must_not:必须不匹配的条件,不参与打分
- filter:必须匹配的条件,不参与打分