Я новичок в Neo4j и пытаюсь выяснить, как использовать несколько основных алгоритмов поиска пути.По сути, у меня есть коллекция заметок, помеченных LogisticalUnit
, которые представляют компании или места, которые могут отправлять товары в другие места.Два таких объекта могут иметь отношение SHIPS_TO
со свойством cost
.Попытка найти путь с минимальными затратами для перехода от узла A
к B
дает мне многообещающий результат, используя algo.shortestPath.stream
:
match (startNode :LogisticalUnit {id: 2}), (endNode :LogisticalUnit {id: 5})
call algo.shortestPath.stream(startNode, endNode, 'cost', {direction: 'OUTGOING', nodeQuery: 'LogisticalUnit', relationshipQuery: 'SHIPS_TO'})
yield nodeId, cost
return *;
Однако, оказывается, что если у меня есть другое отношение, такоекак RECOMMENDS
, и он имеет свойство cost
, он также рассматривается.Кажется, конфиг relationshipQuery
на самом деле не работает.Фактически, замена конфига на relationshipQuery: 'FOOBAR'
, хотя в моей базе данных таких отношений даже не существует, все равно будет возвращать тот же результат!
Свойство nodeQuery
ведет себя так, как ожидается, и если я его изменюк другому лейблу это правильно отклонит результаты.
Есть идеи, где я иду не так?Заранее большое спасибо.