You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Logz.io子聚合查询触发INVALID_QUERY错误求助

解决Logz.io按应用版本层级聚合错误日志的问题

问题背景

需要在Logz.io中按应用版本聚合错误日志,并在每个版本下进一步聚合错误信息,使用子聚合查询时收到INVALID_QUERY错误,但同级聚合可以正常返回结果。

核心原因

报错的关键原因是error_message字段类型问题:

  • 如果error_message是text类型,该字段会被分词处理,无法直接用于terms聚合(terms聚合需要精确匹配的字段值)。
  • Logz.io默认会给text类型字段生成对应的keyword子字段(格式为字段名.keyword),这类字段存储原始的精确值,适合做聚合操作。

修正后的查询

将子聚合中的error_message替换为error_message.keyword,修改后的curl命令如下:

curl -X POST https://api.logz.io/v1/search \
  -H 'Content-Type: application/json' \
  -H 'X-API-TOKEN: xxxxxxxxxx' \
  -d '{
  "query": {
    "bool": {
      "must": [
        {
          "range": {"@timestamp": { "gte": "now-2w", "lte": "now"}}
        }
      ],
      "filter": [{"terms": {"log_level": ["ERROR","CRITICAL","FATAL"]}}]
    }
  },
  "size": 0,
  "aggs": {
    "app_version_agg": {
      "terms": {
        "field": "app_version",
        "size": 1000
      },
      "aggs": {
          "error_message_agg": {
              "terms": {
              "field": "error_message.keyword",
              "size": 1000
              }
          }
      }
    }
  }
}'

额外检查项

如果修改后仍报错,可排查以下内容:

  • 确认app_version字段的类型:如果是text类型,同样需要替换为app_version.keyword
  • 检查API Token的权限是否足够执行聚合查询
  • 确认size参数未超过Logz.io的限制(当前设置的1000通常在允许范围内)

内容的提问来源于stack exchange,提问作者dina

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 23:10:55