【问题标题】:Elasticserach filter on aggregated results (SQL HAVING)聚合结果的 Elasticsearch 过滤器(SQL HAVING)
【发布时间】:2017-02-07 10:52:10
【问题描述】:

我有一个 ES 查询,它聚合来自监控工具的数据。

目前,我已经找到了每个相关组中的文档数量(通过“externalId”)。

现在,我希望按每组中的记录数过滤结果。 (类似于SQL中的“HAVING”子句,doc_count > 0)

例如,查找存储超过一次的“externalId”。

这是我的 ES 查询:

{
"query":
{
   "match" :
    {
        "method" : "METHOD_NAME"
    }
},
"size":0,
"aggs":
{
  "group_by_external_id":
  {
    "terms":
    {
      "field": "externalId"
    }
  }
}
}

结果如下所示:

"aggregations": {
"group_by_external_id": {
  "doc_count_error_upper_bound": 5,
  "sum_other_doc_count": 53056,
  "buckets": [
    {
      "key": "6088417651626873",
      "doc_count": 1
    },
    {
      "key": "6088417688232882",
      "doc_count": 1
    }

【问题讨论】:

    标签: elasticsearch count aggregate having


    【解决方案1】:

    术语聚合有一个可以使用的min_doc_count option。例如,

    "aggs":
    {
      "group_by_external_id":
      {
        "terms":
        {
          "field": "externalId",
          "min_doc_count": 2
        }
      }
    }
    

    【讨论】:

      猜你喜欢
      • 2022-01-17
      • 2015-10-06
      • 2020-02-06
      • 1970-01-01
      • 1970-01-01
      • 2015-09-17
      • 2014-02-02
      • 1970-01-01
      • 2015-07-19
      相关资源
      最近更新 更多