Исследовать график из исходного узла на основе взвешенного расстояния - PullRequest
0 голосов
/ 22 апреля 2020

В Neo4j у меня есть сеть подключенных узлов, и у всех соединений есть вес, связанный с ними.
Я хочу иметь возможность указать начальный узел и максимальное расстояние (под расстоянием я имею в виду сумму весов по краям путь проходит) и получить взамен все узлы, которые достижимы в пределах этого расстояния.
Я делаю , а не хочу вычислить минимальное расстояние для всех узлов в моем графике, поэтому Мне было интересно, есть ли алгоритм, который может «исследовать» график с начального узла и останавливаться, когда он достигает порогового значения.
Я не обязательно ищу решение, но я мог бы использовать некоторые ссылки на соответствующая документация

1 Ответ

0 голосов
/ 25 апреля 2020

Я использую следующее, что делает трюк (поля в квадратных скобках отформатированы с некоторым вводом).

CALL apoc.path.spanningTree(n, {{relationshipFilter:'{relationship_filter}', labelFilter:'{label_filter}', minLevel:{min_level}, maxLevel:{max_level}}}) YIELD path
WITH last(nodes(path)) as node, reduce(weight = 0, rel IN relationships(path) | weight+rel.weight) as depth
WHERE depth<{weighted_depth_limit}
WITH depth, collect(node) as nodes_at_depth
ORDER BY depth ASC
RETURN nodes_at_depth, depth
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...