我在elasticsearch中对以下数据集进行了索引
[
{
"id": "1",
"name": "Red T-shirt",
"size": "S",
"styleId": "R-1"
},
{
"id": "2",
"name": "Red T-shirt",
"size": "M",
"styleId": "R-1"
},
{
"id": "3",
"name": "Red T-shirt",
"size": "L",
"styleId": "R-1"
},
{
"id": "4",
"name": "White T-shirt",
"size": "S",
"styleId": "W-1"
},
{
"id": "5",
"name": "White T-shirt",
"size": "XL",
"styleId": "W-1"
}
]在搜索结果中,我希望产品按styleId分组。有没有可能像下面这样的样本结果?在大多数商业网站,如亚马逊,Myntra,Flipkart,我已经看到他们正在做我正在尝试的相同的事情。我尝试了许多elasticsearch概念,比如“崩溃”,但都没有成功。使用kibana和elasticsearch版本7.4。任何建议都将受到高度赞赏。
[
{
"id": "1",
"name": "Red T-shirt",
"size": "S",
"styleId": "R-1",
"sizes": [
{
"id": "2",
"name": "Red T-shirt",
"size": "M",
"styleId": "R-1"
},
{
"id": "3",
"name": "Red T-shirt",
"size": "L",
"styleId": "R-1"
}
]
},
{
"id": "4",
"name": "White T-shirt",
"size": "S",
"styleId": "W-1",
"sizes": [
{
"id": "5",
"name": "White T-shirt",
"size": "XL",
"styleId": "W-1"
}
]
},
]发布于 2021-06-21 16:10:58
您可以将collapse与基数聚合一起使用。Cardinality将提供组级别计数
{
"_source": "false",
"collapse": {
"field": "styleId.keyword",
"inner_hits": {
"name": "group-details",
"size": 5
}
},
"from": 0,
"size": 5,
"aggs": {
"type_count": {
"cardinality": {
"field": "styleId.keyword"
}
}
}
}https://stackoverflow.com/questions/68002740
复制相似问题