Как создать индексы из данных эластичного поиска для путей в Vega? - PullRequest
0 голосов
/ 08 марта 2020

В настоящее время я пытаюсь создать граф узлов в Кибане, используя 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

1 Ответ

0 голосов
/ 11 марта 2020

На случай, если кто-то наткнется на это: оказывается, я пропустил этот «другой вариант».

Это так же просто, как добавить "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. Справочник по документации

...