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