elasticsearch - 如何从Elasticsearch数据中为Vega中的路径创建索引?

标签 elasticsearch kibana vega

我目前正在尝试使用this示例的vega在Kibana中创建一个节点图。为了进行测试,我使用了node-datalink-data而不是data/miserables.json的硬编码示例数据集。

节点数据值:

[
   { "name": "node1" },
   { "name": "node2" }
]

链接数据值:
[
   { "source": 0, "target": 1, "link-info": "connection" }
]
sourcetargetlink-data属性期望相应node-data条目的索引,因此,目前我绘制了两个节点,它们之间在node1和node2之间进行了硬编码连接(到目前为止工作正常)。

但是,现在我想使用来自Elasticsearch查询的数据而不是硬编码的数据集。

目前,我可以以以下格式查询elasticsearch表

flex 数据值:
[
   { "src_node": "node1", "dst_node": "node2", "link_info": "connection" }
]

现在我不知道如何从中创建link-data。我可能可以通过Elasticsearch查询提取唯一的源和目标来创建node-data,但是如何获取它们的索引来创建匹配的link-data

我发现了this indexof()函数,我以为可以在expr中使用它来转换src_nodedst_node,但无法正常工作,也找不到使用示例。

但是,也许我错过了另一个选择,例如,也许有一种方法可以使用node.name代替sourcetarget的索引?

我整理了一个minimum working example(Vega在线编辑器)-请参见第69行以获取简短描述

最佳答案

万一有人偶然发现:我确实错过了这个“另一个选择”。

只需将"id": "datum.name"附加到
{"force": "link", "links": "link-data", "distance": 100}
所以看起来
{"force": "link", "id": "datum.name", "links": "link-data", "distance": 100}

这允许基于名称的引用而不是索引。现在,数据集name中的link-data字段将用于识别node-data中的项目。 Documentation Reference

关于elasticsearch - 如何从Elasticsearch数据中为Vega中的路径创建索引?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60587982/

相关文章:

elasticsearch - 有没有办法使用 Bodybuilder ElasticSearch 构建带有 has_child 的 "or"

Elasticsearch 过滤计数大于 x 的聚合结果

elasticsearch - 动态字段(不属于映射的部分)出现在kibana中

elasticsearch - Elasticsearch如何将选定的行项目放在结果顶部

json - Vega 根据另一列值计算相对变化

elasticsearch - 计算ElasticSearch快照中的文档数

elasticsearch - 基于现有doc值的elasticsearch脚本更新

elasticsearch - Logstash和Elasticsearch,可能会丢失数据

object - 尝试在 Vega-Lite 中的鼠标悬停时获取引用标记 - "Not in Spec Error"

julia - 在 Jupyter 笔记本的 Julia 内核中调整图的大小