ElasticSearch [六] bool组合多查询

bool 像是 sql 里的查询语句单元、

select * from table where a>10 and b>5

这里的where a>10 就是一个bool

b>5也可以是一个bool

a>10 and b>5 也可以看做一个bool

没有严格界限,全凭需求和习惯,简洁程度来定义

先引出三个关键字

must must_not should

must 内部是 and 的关系 是肯定的 and =

must_not 内部是and的关系 是否定的 and !=

should 内部是 or 的关系

{
    "bool": {
        "must":     { "match": { "title": "how to make millions" }},
        "must_not": { "match": { "tag":   "spam" }},
        "should": [
            { "match": { "tag": "starred" }},
            { "range": { "date": { "gte": "2014-01-01" }}}
        ]
    }
}
must  must_not   should  是 and()  的关系
select * from table where 
title = 'how to make millions' and tag != "spam" and (tag = "starred" or date >= "2014-01-01")

must must_not可以是一个数组 也可以是一个 {}
should

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值