es查询-复合查询

复合搜索(compound query)
布尔搜索(bool query)
bool 查询用bool操作来组合多个查询子句为一个查询。 可用的关键字:
must:必须满足
filter:必须满足,对集合包含/排除的简单检查,计算速度非常快,不参与、不影响评分
should:或
must_not:必须不满足,在filter上下文中执行,不参与、不影响评分

 

description中必须包含java,
price必须满足大于100小于1000,
name字段可以是lucene或者是solr中的一种即可,
时间满足。。。。
POST /book/_search
{
"query": {
"bool" : {
"filter" : {
"match" : { "description" : "java" }
},
"must": [
{
"range" : {
"price" : { "gte" : 100, "lte" : 1000 }
}
},
{"bool": {
"should": [
{"term":{"name":"lucene"}},
{"term":{"name":"solr"}}
]
}}
],
"must_not": [
{
"range": {
"timestamp": {
"gte": "18/08/2020",
"lte": "2021",
"format": "dd/MM/yyyy||yyyy"
}
}
}
]
}
}
}

 

posted @ 2021-11-30 23:07  Wind_LPH  阅读(732)  评论(0编辑  收藏  举报