计算ElasticSearch中文档之间共享字段值的次数

hgb9j2n6  于 2023-01-16  发布在  ElasticSearch
关注(0)|答案(1)|浏览(164)

在ElasticSearch中,一个字段具有某个值,而另一个字段具有两个值,我如何计算这两个文档中出现的次数?
例如,如果我的文档如下所示:

{
“Id”: 6000,

“customerName”: CN,

“customerValue”: 10
}
{
“Id”: 6001,

“customerName”: MX,

“customerValue”: 10
}

我想通过DSL查询计算值为10的customerValue字段在customerName = CN的第一个文档和customerName = MX的第二个文档中出现一次的次数。我基本上想计算customerName为CN和MX的文档之间customerValue共享的次数。

ruyhziif

ruyhziif1#

下面的查询将筛选客户名为CN或MX的文档。聚集将customerValue分组,结果显示值等于10的文档数。

{
  "size": 0, 
  "query": {
    "bool": {
      "should": [
        {
          "match": {
            "customerName": "CN"
          }
        },
        {
          "match": {
            "customerName": "MX"
          }
        }
      ]
    }
  },
  "aggs": {
    "agg_customer_name": {
      "terms": {
        "field": "customerValue",
        "size": 10
      }
    }
  }
}

结果:

"aggregations": {
"agg_customer_name": {
  "doc_count_error_upper_bound": 0,
  "sum_other_doc_count": 0,
  "buckets": [
    {
      "key": 10,
      "doc_count": 2
    }
  ]
}

}

相关问题