如果只有一种产品颜色不同,有没有办法只返回一种产品。 例如假设我有一个具有以下属性的产品:
brand,color,title
nike, red, air max
nike, blue, air max
现在我想创建弹性搜索查询,在聚合时只返回一个产品,但算作两个属于品牌耐克的产品。
{
"query" : {
"match_all" : {}
},
"aggs" : {
"brand" : {
"terms" : {
"field" : "brand"
},
"aggs" : {
"size" : {
"terms" : {
"field" : "title"
}
}
}
}
}
}
我无法获得理想的结果。我想要select name,color,title, count(*) title from product group by name,title
答案 0 :(得分:2)
我想你想要获取文件,按名称,标题汇总
这可以使用topHits聚合来完成。
{
"size": 0,
"query": {
"match_all": {}
},
"aggs": {
"brand": {
"terms": {
"field": "name"
},
"aggs": {
"size": {
"terms": {
"field": "title"
}
},
"aggs":{
"top_hits" :{
"_source" :[ "name","color","band"],
"size":1
}
}
}
}
}
}
对于count,返回的存储区中始终存在doc_count。
希望这有帮助!!如果我遗失了什么,请提及。
由于