Elasticsearch - Kibana Vega Vega Plugin встроенные ссылки - PullRequest
0 голосов
/ 12 марта 2020

Исходя из этого визуального Визуализация Vega

как вы можете встроить внешнюю ссылку в этот тип кода? Я пытаюсь выполнить то же действие, что и связанный визуал, где я могу щелкнуть значение, и оно переносит меня на другую страницу. Я передаю данные немного по-другому, но предпосылка должна быть такой же, где я могу взять значение и добавить ссылку

{
  $schema: https://vega.github.io/schema/vega-lite/v2.json
  data: {
    url: {
      %context%: true
      %timefield%: @timestamp
      index: cdm_mur_*
      body: {
        aggs: {
          top_hits_agg: {
            top_hits: {
              sort: [
                {
                  @timestamp: {order: "desc"}
                }
              ]
              _source: {
                includes: [
                  _id
                  account.id
                  account.status
                  account.type
                  user.id
                  user.first_name
                  user.middle_name
                  user.last_name
                  user.email_address
                  user.phone_number
                  user.type
                  user.job_title
                  user.status_date
                  user.review_date
                  user.review_grace_period
                  organization.id
                  facility.id
                ]
              }
              size: 1
            }
          }
        }
        size: 0
      }
    }
    format: {property: "aggregations.top_hits_agg.hits.hits"}
  }
  layer: [
    {
      mark: {type: "text", fontWeight: "bold", align: "left", fontSize: "15"}
      encoding: {
        text: {value: "User ID"}
        x: {value: 20}
        y: {value: 40}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14"}
      encoding: {
        text: {field: "_source.user.id"}
        x: {value: 20}
        y: {value: 60}
      }
    }
    {
      mark: {type: "text", fontWeight: "bold", align: "left", fontSize: "15"}
      encoding: {
        text: {value: "Name"}
        x: {value: 20}
        y: {value: 90}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14"}
      encoding: {
        text: {field: "_source.user.first_name"}
        x: {value: 20}
        y: {value: 110}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14"}
      encoding: {
        text: {field: "_source.user.last_name"}
        x: {value: 80}
        y: {value: 110}
      }
    }
    {
      mark: {type: "text", fontWeight: "bold", align: "left", fontSize: "15"}
      encoding: {
        text: {value: "Email"}
        x: {value: 20}
        y: {value: 140}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14"}
      encoding: {
        text: {field: "_source.user.email_address"}
        x: {value: 20}
        y: {value: 160}
      }
    }
    {
      mark: {type: "text", fontWeight: "bold", align: "left", fontSize: "15"}
      encoding: {
        text: {value: "Phone"}
        x: {value: 20}
        y: {value: 190}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14"}
      encoding: {
        text: {field: "_source.user.phone_number"}
        x: {value: 20}
        y: {value: 210}
      }
    }
    {
      mark: {type: "text", fontWeight: "bold", align: "left", fontSize: "15"}
      encoding: {
        text: {value: "Job Title"}
        x: {value: 20}
        y: {value: 240}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14"}
      encoding: {
        text: {field: "_source.user.job_title"}
        x: {value: 20}
        y: {value: 260}
      }
    }
    {
      mark: {type: "text", fontWeight: "bold", align: "left", fontSize: "15"}
      encoding: {
        text: {value: "Type"}
        x: {value: 20}
        y: {value: 290}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14"}
      encoding: {
        text: {field: "_source.user.type"}
        x: {value: 20}
        y: {value: 310}
      }
    }
    {
      mark: {type: "text", fontWeight: "bold", align: "left", fontSize: "15"}
      encoding: {
        text: {value: "Status Date"}
        x: {value: 20}
        y: {value: 340}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14"}
      encoding: {
        text: {field: "_source.user.status_date"}
        x: {value: 20}
        y: {value: 360}
      }
    }
    {
      mark: {type: "text", fontWeight: "bold", align: "left", fontSize: "15"}
      encoding: {
        text: {value: "Review Date"}
        x: {value: 20}
        y: {value: 390}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14"}
      encoding: {
        text: {field: "_source.user.review_date"}
        x: {value: 20}
        y: {value: 410}
      }
    }
    {
      mark: {type: "text", fontWeight: "bold", align: "left", fontSize: "15"}
      encoding: {
        text: {value: "Review Grace Period"}
        x: {value: 20}
        y: {value: 440}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14"}
      encoding: {
        text: {field: "_source.user.review_grace_period"}
        x: {value: 20}
        y: {value: 460}
      }
    }
    {
      mark: {type: "text", fontWeight: "bold", align: "left", fontSize: "15"}
      encoding: {
        text: {value: "Organizational Unit"}
        x: {value: 20}
        y: {value: 490}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14"}
      encoding: {
        text: {field: "_source.organization.id"}
        x: {value: 20}
        y: {value: 510}
      }
    }
      {
      mark: {type: "text", fontWeight: "bold", align: "left", fontSize: "15"}
      encoding: {
        text: {value: "Facility"}
        x: {value: 20}
        y: {value: 540}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14"}
      encoding: {
        text: {field: "_source.facility.id"}
        x: {value: 20}
        y: {value: 560}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "15", color: "gray"}
      encoding: {
        text: {value: "document id:"}
        x: {value: 20}
        y: {value: 590}
      }
    }
    {
      mark: {type: "text", align: "left", fontSize: "14", color: "gray"}
      encoding: {
        text: {field: "_id"}
        x: {value: 20}
        y: {value: 610}
      }
    }
  ]
}
...