繁体   English   中英

Elasticsearch术语聚合和带有时间戳的范围

[英]Elasticsearch term aggregation and range with timestamp

我正在尝试计算按用户代理分组的日志数。

这就是我所拥有的。

GET /myindex/_search
{
  "size": 30,
  "stored_fields": ["req.headers.user-agent.keyword"],
  "aggs": {
    "group_by_userAgent": {
      "terms": {
        "field": "req.headers.user-agent.keyword"
      }
    }
  }
}

我想添加“查询最近15分钟”功能。 我尝试添加“范围”查询,但最终出现以下查询,该查询不起作用。

GET /myindex/_search
{
  "size": 30,
  "stored_fields": ["req.headers.user-agent.keyword"],


  "aggs": {

    "group_by_userAgent": {
      "terms": {
        "field": "req.headers.user-agent.keyword"
      },
      "range": {
        "timestamp": {
          "gt": "now-15m"
        }
      }
    }
  }
}

如何使用“ now-x15min”语法查询带有范围的术语聚合?

range应放在查询部分,而不是aggs。 时间范围是好的

我认为您正在寻找的是前30个用户代理存储桶中的文档数,即产生最多日志的前30个用户代理

GET /myindex/_search
{
  "size": 0,
  "query": {
    "range": {
      "@timestamp": {
        "gt": "now-15m"
      }
    }
  },
  "aggs": {
    "group_by_userAgent": {
      "terms": {
        "field": "req.headers.user-agent.keyword",
        "size": 30
      }
    }
  }
}

您首先需要过滤器聚合才能应用范围查询,然后再添加字词子聚合。

请参阅: https//www.elastic.co/guide/zh-CN/elasticsearch/reference/current/search-aggregations-bucket-filter-aggregation.html

您可以通过两种方式来实现用户代理的聚合结果。

POST phrase_index/_search
{
  "aggs": {
    "date_range_filtered_agg": {
      "filter": {
        "range": {
          "timestamp": {
            "gte": "now-15m/m"
          }
        }
      },
      "aggs": {
        "group_by_userAgent": {
          "terms": {
            "field": "req.headers.user-agent.keyword",
            "size": 10
          }
        }
      }
    }
  },
  "size": 30,
  "stored_fields": ["req.headers.user-agent.keyword"]
}


POST phrase_index/_search
{
  "query": {
    "range": {
      "timestamp": {
        "gte": "now-15m/m"
      }
    }
  },
  "aggs": {
    "group_by_userAgent": {
      "terms": {
        "field": "req.headers.user-agent.keyword",
        "size": 10
      }
    }
  },
  "size": 30,
  "stored_fields": ["req.headers.user-agent.keyword"]
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM