Elasticsearch 过滤计数大于 x 的聚合结果

标签 elasticsearch

我有以下 Elasticsearch 查询,以便从按市场 ID 分组的 Elasticsearch 中获得最高的总毫秒数。

    {
  "from": 0,
  "size": 0,
  "query": {
  "filtered": {
    "filter": {
      "and": [
        {
          "term": {
            "@type": "tradelog"
          }
        },
        {
          "range": {
            "@timestamp": {
              "gte": "now-7d",
              "lt": "now"
            }
          }
        },
        {
          "range": {
            "TotalMs": {
              "gte": 200,
              "lt": 2000
            }
          }
        }
      ]
    }
  }

},
"aggregations": {
      "the_name": {
         "terms": {
            "field": "Market",
            "order" : { "totalms_avg" : "desc" }
         },
         "aggregations": {
            "totalms_avg": {
               "avg": {
                  "field": "TotalMs"
               }
            }
         }
      }
   }
}

此查询返回几个只有 1 个结果的存储桶,这些存储桶在我的数据中是离群值,因此我不希望将它们包括在内。是否可以过滤掉任何计数小于 5 的桶? Elasticsearch 等同于SQLs 'HAVING'子句。

最佳答案

是的,您可以使用 min_doc_count setting

...
"aggregations": {
      "the_name": {
         "terms": {
            "field": "Market",
            "order" : { "totalms_avg" : "desc" },
            "min_doc_count": 5
         },
         "aggregations": {
            "totalms_avg": {
               "avg": {
                  "field": "TotalMs"
               }
            }
         }
      }
   }
}

关于Elasticsearch 过滤计数大于 x 的聚合结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38920654/

相关文章:

java - Elasticsearch 使用 Java API 抓取所有内容,但限制为一定数量

elasticsearch - Elasticsearch查询中使用相同关键字的不同结果

json - Elasticsearch 使用 Golang Beats 返回原始 JSON

elasticsearch - Elasticsearch -空数组?

performance - 在 Elasticsearch 中使用 function_score 时,过滤器是在 function_score 对象内部还是外部有关系吗?

sorting - ElasticSearch:对复杂查询进行排序

java - 如何验证 Elasticsearch 中特定索引的快照是否正在进行?

elasticsearch - 如何以编程方式创建 Kibana(Elasticsearch)脚本字段?

elasticsearch - Elasticsearch-在field_value_factor内部的嵌套值查询

elasticsearch - 如何不使用文件节拍将日志获取到logstash服务器