【问题标题】:Elasticsearch count elements in array, for a property having a valueElasticsearch计数数组中的元素,用于具有值的属性
【发布时间】:2019-05-14 18:27:01
【问题描述】:

我有一个结构如下的文档:

{
  "products": [
    {
      "variants": [
        {
          "type": "type_1"
        },
        {
          "type": "type_2"
        }
      ]
    }
  ]
}

“变体”是动态映射。我想计算具有特定类型的变体。如果我使用术语聚合,它将返回所有类型的存储桶键及其各自的文档计数,但我希望我传递的类型存在于存储桶键及其各自的文档计数中。

或者是他们只计算变体而不是文档并获取类型作为键和值作为计数的桶的任何方式

有人可以帮我查询吗?

【问题讨论】:

  • 您是否尝试过将聚合与过滤器结合使用?
  • @anmaxvl 是的,但我仍然在存储桶键中获得其他类型。我只希望我传递的类型出现在存储桶键及其文档计数中

标签: elasticsearch elasticsearch-aggregation


【解决方案1】:

我用脚本解决了。

{
  "aggs": {
    "agg_terms_types": {
      "terms": {
        "script": {
          "source": "params.selected_types",
          "params": {
            "selected_types": [
              "type_1"
            ]
          }
        }
      }
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-02-06
    • 2015-07-13
    相关资源
    最近更新 更多