在 Kibana 中 vega-lite 的查找转换中使用查询

问题描述

我有一个包含两个不相交字段的索引。由于我无法使用联合查询获取这两个字段(Elasticsearch 尚不支持联合查询),因此我尝试使用 Vega-Lite 的查找转换发送单独的查询来检索第二个不相交的字段。

[{"a": "10","b": "x"},{"a": "20","b": "y"},{"a": "25","b": "z"} ....

.... {"a": "21","c": "l"},{"a": "22","c": "m"},{"a": "40","c": "n"}] 

我想从 20 到 25 获取 a 的 b 和 c 的值 在这种情况下的答案是 b = ["y","z"],c = ["l","m"]

我的 vega-lite json 配置如下所示:

{
  "data": {
    "url": {
      "index": "index-name","query": "" // Query to fetch all values of b
    },"transform": [{
    "lookup": "",// What to put here?
    "from": {
      "data": {
        "url": {
          "index": "index-name","query": "" // Query to fetch all values of c
        }
      },"key": "",// What to put here?
      "fields": []  // and here?
    }
  }],"mark": ...,"encoding": {
    ...
  }
}

基本上我正在寻找的是首先获得 b 的值,然后选择 a 的范围 并在 a 的这个范围内再次查询 c。

有可能吗? 因为我在 Vega-lite 中经常遇到错误

解决方法

您可以在 vega-lite 编辑器中尝试以下操作。您将需要 2 个数据集,1 个是 c_data,另一个是 b_data。转换查找类似于左联接,因此联接仅适用于具有公共值的“a”字段。

onCompleted

告诉我这是否适合您。