说,我有以下文件:
第一份文件:
{
productName: "product1",
tags: [
{
"name":"key1",
"value":"value1"
},
{
"name":"key2",
"value":"value2"
}
]
}
Run Code Online (Sandbox Code Playgroud)
第二个文件:
{
productName: "product2",
tags: [
{
"name":"key1",
"value":"value1"
},
{
"name":"key2",
"value":"value3"
}
]
}
Run Code Online (Sandbox Code Playgroud)
我知道如果我想按productName分组,我可以使用terms聚合
"terms": {
"field": "productName"
}
Run Code Online (Sandbox Code Playgroud)
这将给我两个带有两个不同键"product1","product2"的桶.
但是,如果我想按标签键分组,那么查询应该是什么?即我想用标签分组名称== key1,然后我期待一个桶key ="value1"; 如果我按标签分组名称== key2,我希望结果是两个桶,键"value2","value3".
如果我想按嵌套数组中的'value'分组而不是'key'分组,那么查询应该是什么样子?有什么建议吗?