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

如何在Grafana单个变量中展示Elasticsearch多字段内容?

嘿,我刚好碰到过类似的需求!Grafana的Elasticsearch变量查询其实不支持直接在field参数里传数组,你原来写的["region_a.keyword","region_b.keyword"]这种写法是不会生效的。我给你两种可行的解决方案,看哪种更贴合你的需求:

方案1:用脚本合并两个字段的取值(适合需要关联展示的场景)

如果想把两个字段的取值合并成一组结果返回,可以使用Elasticsearch的Painless脚本,在变量查询里指定script参数代替field:

{"find": "terms", "script": {
  "source": "doc['region_a.keyword'].value + ',' + doc['region_b.keyword'].value",
  "lang": "painless"
}}

这种方式会把每个文档里的region_a和region_b值拼接成一个字符串(比如华东,华北)返回,适合需要把两个字段关联展示的场景。

方案2:获取两个字段的所有独立取值(适合多选或独立筛选)

如果希望得到两个字段各自的所有独立值(不拼接,比如同时拿到region_a的所有区域和region_b的所有区域),可以改用find: query的方式来实现:

{"find": "query", "query": {
  "bool": {
    "should": [
      {"exists": {"field": "region_a.keyword"}},
      {"exists": {"field": "region_b.keyword"}}
    ]
  }
}, "field": ["region_a.keyword", "region_b.keyword"]}

这个查询会返回所有包含region_a.keyword或region_b.keyword的文档中,这两个字段的所有取值。之后你可以在变量设置里开启Multi-value和Include all option,方便后续筛选使用。

另外补充个小提示:Grafana的Elasticsearch数据源中,find: terms类型的查询只支持单个field参数,这就是你最初的数组写法失效的原因哦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.06 12:32:35