小编Chr*_*a.Y的帖子

在elasticsearch中,如何在嵌套数组中按值进行分组

说,我有以下文件:

第一份文件:

{
  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'分组,那么查询应该是什么样子?有什么建议吗?

elasticsearch

3
推荐指数
1
解决办法
3237
查看次数

标签 统计

elasticsearch ×1