Запрос Neo4j Cypher gds.alpha.allShortestPaths.stream зависает - PullRequest
0 голосов
/ 03 августа 2020

образец графика

У меня есть график, похожий на тот, что здесь. Я хочу найти расстояние между всеми путями (конечная цель - найти стоимость каждого возможного l oop), каждый путь имеет метку со свойством, значение которого может быть отрицательным или положительным. Я пробовал следующий код:

CALL gds.alpha.allShortestPaths.stream({
nodeProjection: 'Loc',
relationshipProjection: {
ROAD: {
  type: 'ROAD',
  properties: 'cost'
 }
},
relationshipWeightProperty: 'cost'
})
YIELD sourceNodeId, targetNodeId, distance
WITH sourceNodeId, targetNodeId, distance
WHERE gds.util.isFinite(distance) = true

MATCH (source:Loc) WHERE id(source) = sourceNodeId
MATCH (target:Loc) WHERE id(target) = targetNodeId
WITH source, target, distance WHERE source <> target

RETURN source.name AS source, target.name AS target, distance
ORDER BY distance DESC, source ASC, target ASC
LIMIT 10

Но пока все узлы остаются подключенными, запрос будет бесконечным. Когда я отключаю некоторые узлы, это работает. Что-то мне не хватает? Я не могу использовать много алгоритмов, потому что они не поддерживают отрицательные веса !!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...