Query DSL 布尔-范围和分页-排序
range:范围查询
用于根据范围条件进行查询,例如指定价格在一定区间内的商品,范围符号
| 符号 | 描述 |
|---|---|
| gte | 大于等于 |
| gt | 大于 |
| lte | 小于等于 |
| lt | 小于 |
shell
GET /shuofeng_shop_v1/_search
{
"query": {
"range": {
"price": {
"gte": 5,
"lte": 100
}
}
}
}分页查询
- 可以使用 from 和 size 参数进行分页查询
- 可以指定要跳过的文档数量(from)和需要返回的文档数量(size)
shell
GET /shuofeng_shop_v1/_search
{
"size": 10,
"from": 0,
"query": {
"match_all": {}
}
}查询结果排序
sort 字段可以进行排序 desc 和 asc
shell
GET /shuofeng_shop_v1/_search
{
"size": 10,
"from": 0,
"sort": [
{
"price": "asc"
}
],
"query": {
"match_all": {}
}
}bool 查询
通过组合多个查询条件,使用布尔逻辑(与、或、非)进行复杂的查询操作,语法格式如下:
- "must"关键字用于指定必须匹配的条件,即所有条件都必须满足
- "must_not"关键字指定必须不匹配的条件,即所有条件都不能满足
- "should"关键字指定可选的匹配条件,即至少满足一个条件
shell
{
"query": {
"bool": {
"must": [
// 必须匹配的条件
],
"must_not": [
// 必须不匹配的条件
],
"should": [
// 可选匹配的条件
],
"filter": [
// 过滤条件
]
}
}
}案例实战
shell
GET /shuofeng_shop_v1/_search
{
"query": {
"bool": {
"must": [
{ "match": { "summary": "Cloud" }},
{ "range": { "price": { "gte": 5 }}}
]
}
}
}
朔风