【发布时间】:2022-01-25 11:32:02
【问题描述】:
我正在开发一个类似于 https://www.kijijiautos.ca 的二手车市场网站。 我想对我的数据集进行聚合,以获取例如“福特”的汽车数量,并且在同一聚合中,我想获取二手车、新车和其他规格的总数
我尝试了以下方法:
GET auto/_search
{
"size": 0,
"aggs": {
"stats": {
"multi_terms": {
"terms": [{"field": "Make"}, {"field": "Type"}]
}
}
}
}
我得到了以下结果
{
"took" : 149,
"timed_out" : false,
"_shards" : {
"total" : 1,
"successful" : 1,
"skipped" : 0,
"failed" : 0
},
"hits" : {
"total" : {
"value" : 10000,
"relation" : "gte"
},
"max_score" : null,
"hits" : [ ]
},
"aggregations" : {
"stats" : {
"doc_count_error_upper_bound" : 0,
"sum_other_doc_count" : 14378,
"buckets" : [
{
"key" : [
"BMW",
"Used"
],
"key_as_string" : "BMW|Used",
"doc_count" : 2826
},
{
"key" : [
"Volkswagen",
"Used"
],
"key_as_string" : "Volkswagen|Used",
"doc_count" : 2592
},
{
"key" : [
"Audi",
"Used"
],
"key_as_string" : "Audi|Used",
"doc_count" : 2310
},
{
"key" : [
"Opel",
"Used"
],
"key_as_string" : "Opel|Used",
"doc_count" : 1494
},
{
"key" : [
"Ford",
"Used"
],
"key_as_string" : "Ford|Used",
"doc_count" : 1485
},
{
"key" : [
"Renault",
"Used"
],
"key_as_string" : "Renault|Used",
"doc_count" : 1303
},
{
"key" : [
"Peugeot",
"Used"
],
"key_as_string" : "Peugeot|Used",
"doc_count" : 1196
},
{
"key" : [
"Fiat",
"Used"
],
"key_as_string" : "Fiat|Used",
"doc_count" : 1149
},
{
"key" : [
"Skoda",
"Used"
],
"key_as_string" : "Skoda|Used",
"doc_count" : 668
},
{
"key" : [
"SEAT",
"Used"
],
"key_as_string" : "SEAT|Used",
"doc_count" : 629
}
]
}
}
}
但这不是我所期待的 我期望的是以下内容:
{
// first bucket
[
{
"doc_count" : 123,
"key" : "BMW"
}
// other makes here
]
// second bucket
[
{
"doc_count" : 2500,
"key" : "Used"
},
{
"doc_count" : 500,
"key" : "New"
}
]
}
如果这在 elasticsearch 中是可能的,那么请帮我写这个查询
谢谢