Ein ausgewählter kürzester Pfad
- in Bezug auf Anzahl Haltestellen
- nicht Distanz
MATCH p = ANY SHORTEST
(i:N {name: 'A'})-[:E]->+(b:N {name: 'F'})
RETURN [n IN nodes(p) | n.name] AS path;
Alle kürzesten Pfade
MATCH p = ALL SHORTEST
(i:N {name: 'A'})-[:E]->+(b:N {name: 'F'})
RETURN [n IN nodes(p) | n.name] AS path;
Pfade mit aufsteigender Pfadlänge
- erst alle kürzesten Pfade
- dann die nächstlängeren usw.
- bis die Anzahl ausgeschöpft ist
MATCH p = SHORTEST 3
(i:N {name: 'A'})-[:E]->+(b:N {name: 'F'})
RETURN [n IN nodes(p) | n.name] AS path;
MATCH p = SHORTEST 4
(i:N {name: 'A'})-[:E]->+(b:N {name: 'F'})
RETURN [n IN nodes(p) | n.name] AS path;
MATCH p = SHORTEST 10
(i:N {name: 'A'})-[:E]->+(b:N {name: 'F'})
RETURN [n IN nodes(p) | n.name] AS path;
Pfade nur zu Endpunkten
MATCH p = ANY SHORTEST
(i:N {name: 'A'})
-[:E]->+
(b:N WHERE NOT EXISTS {(b)-[:E]->(:N)})
RETURN [n IN nodes(p) | n.name] AS path;