gpt4 book ai didi

elasticsearch - Elasticsearch-在聚合方面忽略整个对象

转载 作者:行者123 更新时间:2023-12-02 22:25:04 25 4
gpt4 key购买 nike

我需要进行查询,以术语聚合的形式列出整个对象。映射如下所示:

{
"travelers": {
"properties": {
"traveler": "string",
"cars": {
"type":"nested",
"properties": {
"type": {
"type":"string"
},
"color": {
"type":"string"
}
}
}
}
}
}

我可以进行的查询是这样的:
{
"aggregations": {
"people": {
"terms": {
"field":"traveler"
}
},
"aggregations": {
"cars": {
"nested": {
"path":"cars"
},
"aggregations": {
"types": {
"terms": {
"field":"cars.type"
}
}
}
}
}
}
}

但是此查询仅返回汽车的类型。我可以对其进行修改以返回类型和颜色,但是我不能那样确定哪种颜色与哪种类型的汽车有关。我怎样才能做到这一点?

最佳答案

嵌套聚合只是确保将每个嵌套对象都视为文档,并且聚合发生在嵌套文档级别而不是实际文档级别。

因此,您需要对颜色再进行一层聚合才能获得所需的内容。

{
"aggregations": {
"people": {
"terms": {
"field": "traveler"
}
},
"aggregations": {
"cars": {
"nested": {
"path": "cars"
},
"aggregations": {
"types": {
"terms": {
"field": "cars.type"
},
"aggs": {
"colors": {
"terms": {
"field": "cars.color"
}
}
}
}
}
}
}
}
}

关于elasticsearch - Elasticsearch-在聚合方面忽略整个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28682826/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com