ElasticSearch:聚合期间按不同计数进行筛选

ElasticSearch:聚合期间按不同计数进行筛选,
Warning: implode(): Invalid arguments passed in /data/phpspider/zhask/webroot/tpl/detail.html on line 45
,,以下查询按ID的最大不同计数顺序返回不同的ID。我想做的是“仅包括文档总数小于2000的ID” 我试着按“doc\u count”添加过滤器,但没用。如何执行此操作?您可以使用 Bucket Selector聚合是一个父管道聚合,它执行一个脚本来确定 当前bucket是否会保留在父多bucket中 聚合 { “大小”:“0”, “查询”:{ “范围”:{ “@timestamp”:{ “gte”:“2020-10-20T00:00:00”, “lt”:“2020-10-21T00:00:00”

以下查询按ID的最大不同计数顺序返回不同的ID。我想做的是“仅包括文档总数小于2000的ID”


我试着按“doc\u count”添加过滤器,但没用。如何执行此操作?

您可以使用

Bucket Selector聚合是一个父管道聚合,它执行一个脚本来确定 当前bucket是否会保留在父多bucket中 聚合

{
“大小”:“0”,
“查询”:{
“范围”:{
“@timestamp”:{
“gte”:“2020-10-20T00:00:00”,
“lt”:“2020-10-21T00:00:00”
}
}
},
“aggs”:{
“ID”:{
“条款”:{
“字段”:“Id.keyword”,
“尺寸”:1000
},
“aggs”:{
“计数过滤器”:{
“铲斗选择器”:{
“bucket\u路径”:{
“值”:“\u计数”
},

“脚本”:“params.values<2000”请给我一些时间。只是醒过来。谢谢。好的,没问题这对我不起作用。“note This”是什么意思?我应该改变什么吗?我“照原样”使用它.@DilTeam
注意
只是向查询中的bucket selector聚合指出。在运行上述搜索查询时,您是否遇到任何错误?我在本地也尝试过,它正在运行fineWait。计数将仅应用于日期的“范围”,对吗?嗯……这可能会起作用。让我看看。
{
  "size": "0",
  "query": {
    "range": {
      "@timestamp": {
        "gte": "2020-10-20T00:00:00",
        "lt": "2020-10-21T00:00:00"
      }
    }
  },
  "aggs": {
    "ids": {
      "terms": {
        "field": "Id.keyword",
        "size": 1000
      }
    }
  }
}
{
  "size": "0",
  "query": {
    "range": {
      "@timestamp": {
        "gte": "2020-10-20T00:00:00",
        "lt": "2020-10-21T00:00:00"
      }
    }
  },
  "aggs": {
    "ids": {
      "terms": {
        "field": "Id.keyword",
        "size": 1000
      },
      "aggs": {
        "count_filter": {
          "bucket_selector": {
            "buckets_path": {
              "values": "_count"
            },
            "script": "params.values < 2000"   <-- note this
          }
        }
      }
    }
  }
}