У меня есть следующие узлы в моем графике:Neo4j запрос на пути
Car
Trash
CarToTrash
[:has_input]-(Car)
[:has_output]-(Trash)
RecycleTrash
[:has_input]-(Trash)
[:has_output]-(Car)
Я пытаюсь найти запрос, который даст мне все кратчайшие пути между этими двумя типами, т.е.
(Car) - [has_input] - (CarToTrash) - [has_output] - (Trash) - [has_input] - (RecycleTrash) - [has_output] - (Автомобиль)
Длина пути может отличаться. Он может иметь больше узлов, таких как XToY с отношением has_input и has_output. Я хотел бы найти кратчайший путь между любыми двумя типами, которые я мог бы добавить к графику. CarToTrash и RecycleTrash представляют функцию и отношение has_input, а has_output - тип ввода и возвращаемый тип функции. В принципе, у меня есть график типов и функций, и я бы хотел проверить, существует ли путь к функциям между любыми двумя произвольными типами в графе.
Я пробовал со следующим запросом, который работает несколько, но он найдет пути, которые не будут следовать шаблону has_input, has_output, если они существуют. Кроме того, я пробовал найти путь из Car обратно в Car, который мне не удалось сделать, я мог найти только Car to Trash, я мог бы обойтись без него, если бы не было возможности запросить такие петли.
MATCH car, trash WHERE car.uid='Car' AND trash.uid='trash'
WITH car, trash MATCH p = allShortestPaths(car-[*..15]-trash) return p;
Спасибо. Будет ли эта функциональность в конечном итоге доступна в Cypher? – user2608171