面试题答案
一键面试- 使用的API:
POST {index}/_search
- 实现步骤及相关参数:
- 请求体内容:
{
"size": 0,
"aggs": {
"product_name_agg": {
"terms": {
"field": "product_name.keyword",
"size": 10000 // 根据实际情况调整,确保能包含所有产品名称
},
"aggs": {
"top_sales_and_lowest_price": {
"top_hits": {
"sort": [
{
"sales_volume": {
"order": "desc"
}
},
{
"price": {
"order": "asc"
}
}
],
"size": 3
}
}
}
}
}
}
- 解释:
size: 0
表示不返回顶层搜索结果,只关注聚合结果。terms
聚合按product_name.keyword
字段进行聚合,因为product_name
一般为文本类型,需使用keyword子字段进行聚合。size
参数用于指定聚合桶的最大数量。top_hits
子聚合用于在每个产品名称聚合桶内,先按sales_volume
降序排序,再按price
升序排序,并返回排名前三的文档信息。