我的文件看起来像这样:
文件1
{
Name: "Test",
Items: [
{ Type: 1, Value: 1 },
{ Type: 2, Value: 2 },
...
]
}
文件2
{
Name: "Test",
Items: [
{ Type: 1, Value: 10 },
{ Type: 2, Value: 20 },
...
]
}
现在,我需要对多个文档中的Name
和Type
字段进行分组,然后平均值。但是我很难找到有关如何通过弹性搜索来实现这一目标的信息?
例如,在MongoDB中,我会$unwind
Items
然后$group``Name
和Items.Type
然后$avg
Value
字段。
我期待的结果是:
结果1
{
Name: "Test,
Type: 1,
Average: 5.5
}
结果2
{
Name: "Test,
Type: 2,
Average: 10.5
}
答案 0 :(得分:0)
For nested documents you can run aggregation like the below one...
"aggs" : {
"resellers" : {
"nested" : {
"path" : "resellers"
},
"aggs" : {
"min_price" : { "min" : { "field" : "resellers.price" } }
}
}
}
用于映射数据,如...
"product" : {
"properties" : {
"resellers" : {
"type" : "nested",
"properties" : {
"name" : { "type" : "string" },
"price" : { "type" : "double" }
}
}
}
}