面试题答案
一键面试- 使用
bool
查询来实现条件限制:bool
查询是Elasticsearch中用于组合多个查询子句的查询类型,它可以包含must
(必须满足)、should
(应该满足)、must_not
(必须不满足)等子句。- 对于这个需求,我们可以使用
bool
查询的must
子句来组合价格范围查询和类别匹配查询。
- 查询语句如下:
{
"query": {
"bool": {
"must": [
{
"range": {
"价格": {
"gte": 100,
"lte": 500
}
}
},
{
"term": {
"类别": "电子产品"
}
}
]
}
}
}
在上述查询语句中:
range
查询用于指定价格字段的范围,gte
表示大于等于(greater than or equal
),lte
表示小于等于(less than or equal
)。term
查询用于精确匹配类别字段为“电子产品”。这两个查询条件都放在bool
查询的must
子句中,意味着文档必须同时满足这两个条件才能被返回。