在汇总内过滤以进行Elasticsearch查询

时间:2019-05-09 17:58:22

标签: elasticsearch lucene kibana elasticsearch-aggregation

我有一个查询,尝试按年字段对记录进行存储,然后对于每个存储区,我要

  • 使用过滤条件创建子计数(分子)并获得custom_id的基数(唯一计数)
  • 使用过滤条件创建子计数(分母)并获得custom_id的基数(唯一计数)
  • 除分子和分母

我无法为分子和分母子存储桶添加过滤条件。

这是我的查询内容-

GET <index_name>/_search
{
  "size": 0,
  "query": { . . <ABLE TO USE bool QUERY HERE>. . },
  "aggs": {
    "test": {
      "date_histogram": {
        "field": "datetimefield",
        "interval": "year",
        "format": "yyyy"
      },
      "aggs": {
        "filter": { <UNABLE TO USE THE SAME bool QUERY here> },
        "denominator": {
          "cardinality": {
            "field": "custom_id.keyword"
          }
        },
        "numerator": {
          "cardinality": {
            "field": "custom_id.keyword"
          }
        },
        "division": {
          "bucket_script": {
            "buckets_path": {
              "denom": "denominator",
              "num": "numerator"
            },
            "script": "params.num / params.denom"
          }
        }
      }
    }
  }
}

之所以需要分子和分母的过滤器块,是因为我对它们都有不同的标准集。有可能做我在这里想要实现的目标吗?

0 个答案:

没有答案