【问题标题】:Counting records in elasticsearch by avoiding duplicates通过避免重复计算elasticsearch中的记录
【发布时间】:2020-09-02 16:04:08
【问题描述】:

对于/_search的搜索结果,我想得到总记录的计数,在应用一个条件后,如果fieldxyz中有多个具有相同值的记录,我想只计算一条记录.例如,以下是完整结果:

Doc 1 {field_one:'值一' , fieldxyz: '值四';}

Doc 2 {field_one:'值二' , fieldxyz: '值五';}

Doc 3 {field_one:'值三', fieldxyz:'值四';}

因为'值四'出现了两次,所以我想把这两条记录算作一条,最后的计数应该是2。

我该怎么做?

【问题讨论】:

标签: elasticsearch


【解决方案1】:

您可以使用以下 elasticsearch 基数聚合来获取字段的不同值的计数:

{
  "aggs": {
    "counting": {
      "cardinality": {
        "field": "fieldxyz"
      }
    }
  }
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多