面试题答案
一键面试{
"query": {
"bool": {
"filter": [
{
"term": {
"类别.keyword": "电子产品"
}
},
{
"range": {
"价格": {
"gte": 100,
"lte": 500
}
}
}
]
}
}
}
query
:代表查询部分,是Elasticsearch查询请求体的核心部分,定义了如何从索引中检索数据。bool
:布尔查询,它可以组合多个查询子句,通过must
(必须满足)、should
(应该满足)、filter
(过滤)、must_not
(必须不满足)等条件来构建复杂查询逻辑。这里使用filter
,它主要用于筛选数据,不参与评分,性能较好。term
:用于精确匹配,类别.keyword
表示对类别
字段进行精确匹配,这里假设类别
字段映射为keyword类型,确保精确匹配。将“电子产品”作为匹配值,筛选出类别为“电子产品”的文档。range
:用于范围查询,价格
表示对价格字段进行范围查询。gte
表示大于等于,lte
表示小于等于,这里筛选出价格在100(包含)到500(包含)之间的商品。