复合查询也叫复合过滤器;将你的多个查询条件,以一定的逻辑组合在一起;
通俗来讲就是有一些逻辑判断关系在查询里面;我们以前查询的是按照关键词查询,大部分都是包含这个关键词的,或者是和这个关键词是相匹配的;复合查询的逻辑是不包含的,或者包含这个关键词但是不包含另一个关键词的;又或者是包含A1也必须包含A2 的;
复合查询有三个逻辑判断词:
·must: 所有的条件,用must组合在一起,表示And的意思 (must 等于 and)
·must_not:将must_not中的条件,全部都不能匹配,标识Not的意思 (must_not 表示全部不是)
·should:所有的条件,用should组合在一起,表示Or的意思 (should 表示 or)
#复合查询
#bool查询
GET /book/novel/_search
{
"query": {
"bool": {
"should": [
{
"term": {
"author": {
"value": "滔滔"
}
}
},
{
"term": {
"author": {
"value": "任凯"
}
}
}
],
"must_not": [
{
"term": {
"name": {
"value": "希勒111"
}
}
}
],
"must": [
{
"term": {
"price": {
"value": "200"
}
}
}
]
}
}
}
含义:复合查询一般都是布尔查询,所以是”bool” ;然后should是或的意思,也就是author要么是”滔滔”要么author是”任凯”;后面must_not :必须不是,name必须不是希勒111,pricei价格,必须是200 ;
注意:should,must,must_not 后面必须都是中括号 [ ] ;表示数组,也就是可以放多个值;
。。。。。。。。。。。。。
嘻哈的简写笔记
。。。。。。。。。。。。。