考虑 Articles 和 VariationGroups 之间的 OneToMany 关系。
在 ElasticSearch 中,每个文章文档都有一个“variationGroup”字段。
我使用术语聚合按文章文档的“variationGroup”字段对结果进行分组。
我使用 TopHits 子聚合来获取每个存储桶的第一个文档。
如何获得每个变体组的最低价格?如果我对术语聚合使用 Min 子聚合,则将根据与查询匹配的文档计算最低价格。
我想获得可以归入一个变体组的所有文档的最低价格。
例如,名为“Tshirt with stars”的 VariationGroup 包含 6 篇文章。查询“red Tshirt”返回这 6 篇文章中的 2 篇。
我想获得 6 篇文章的最低价格,而不仅仅是与查询匹配的 2 篇文章。
这甚至可能在同一个电话中吗?
这是相应的 json :
{
"query": {
"match": {
"name": "red Tshirt"
}
},
"size": 0,
"aggs": {
"variation_groups": {
"terms": {
"field": "variationGroup",
"size": 0
},
"aggs": {
"min_price": {
"min": {
"field": "price"
}
},
"max_price": {
"max": {
"field": "price"
}
},
"top_article": {
"top_hits": {
"size": 1
}
}
}
}
}
}