ElasticSearch:按数组中的项目计数

时间:2016-08-21 15:08:00

标签: elasticsearch

对于每个文档,我都有一个类别数组,它看起来像这样:

[{
    "id": 1,
    "level": 1
}, {
    "id": 2,
    "level": 2
}, {
    "id": 3,
    "level": 3
}]

如何根据3级category.id?

计算每个文档中的类别

1 个答案:

答案 0 :(得分:0)

类别数组应为嵌套字段。其余的可以通过聚合来处理。尝试类似于下面给出的代码。

"aggregations": {
"mainAgg": {
  "nested": {
    "path": "category"
  },
  "aggs": {
    "levelFilter": {
        -- filter condition
      "filter": {
        "term": {
          "level": 3
        },
          -- count aggregation
        "aggs": {
          "count": {
            "value_count": {
              "field": "level"
            }
          }
        }
      }
    }
  }
}

}