elasticsearch复合aggs与嵌套对象

时间:2018-02-26 19:10:33

标签: elasticsearch nested aggregation

我有一个嵌套字段的对象。

<input type="file" />

我试试aggs

  "parameters": {
        "type": "nested",
        "properties": {
          "id": {
            "type": "integer"
          },
          "values": {
            "type": "keyword"
          }
        }
      }

但这并不好,因为我设定了一个&#34;尺寸&#34;太大了。 在文档中说

如果要在嵌套术语聚合中检索所有术语或所有术语组合,则应使用复合聚合

但是我无法理解如何将复合聚合与嵌套对象一起使用..它是真实的吗?

2 个答案:

答案 0 :(得分:0)

尝试放弃你的第3个“aggs”,如下所示:

{
    "aggs": {
        "parameters": {
            "nested": {
                "path": "parameters"
            },
            "aggs": {
                "count_item_one": {
                    "terms" : { 
                        "field": "parameters.item_one",
                        "size": 100
                    }
                },
                "count_item_two": {
                    "terms" : { 
                        "field": "parameters.item_two",
                        "size": 100
                    }
                }
            }
        }
    }
}

如果您再次嵌套第二项,则可能需要再次设置嵌套参数,就像使用第一个“aggs”一样。

答案 1 :(得分:0)

我的解决方案

{
  "size": 0, 
  "aggs" : {
     "parameters" : {
        "nested" : {
            "path" : "parameters"
        },
        "aggs": {
          "group":{
            "composite" : {
              "size": 100, // your size 
              "sources" : [
                { "id": { "terms" : { "field": "parameters.id"} }}
              ]
            }
          }
        }
    }
  }
}