В настоящее время я пытаюсь создать граф узлов в Кибане, используя vega, следуя этому примеру. Для тестирования я использовал жестко заданный пример набора данных для node-data
и link-data
вместо data/miserables.json
.
значений данных узла:
[
{ "name": "node1" },
{ "name": "node2" }
]
значения данных ссылки:
[
{ "source": 0, "target": 1, "link-info": "connection" }
]
Свойство source
и target
link-data
ожидает индекс соответствующей записи node-data
, поэтому в настоящее время я рисую два узла с жестко закодированным соединением между node1 и node2 (до сих пор работает нормально).
Однако теперь я хочу использовать данные из запросаasticsearch вместо жестко закодированного набора данных .
В данный момент я могу запросить эластичный поиск таблицы в следующем формате
elasti c -данные значения:
[
{ "src_node": "node1", "dst_node": "node2", "link_info": "connection" }
]
Теперь я не знаю, как создать link-data
из этого. Я мог бы, вероятно, извлечь уникальные источники и места назначения с помощью запросаasticsearch для создания node-data
, но как я мог получить их индекс для создания соответствующего link-data
?
Я нашел это indexof()
функция, которую я думал использовать в expr
для преобразования src_node
и dst_node
, но не смог заставить ее работать или найти примеры использования.
Но, возможно, я упустил другой вариант, может быть, есть способ использовать node.name
вместо индекса для source
и target
?
Я собрал минимальный рабочий пример (Vega Online Editor) - краткое описание см. В строке 69