Finding the unique paths through a Neo4j graph
- by Larry
I have a Neo4j graph with 12 inputs and 4 outputs, and am trying to write a query with the Java Traverser that will return the 14 unique paths from an input to an output node. All the queries I have tried return only a subset of the 14 paths. For example, the code below returns 4 paths, but the other 10 all stop 1 node short of the output.
RelationshipType relType = RelationshipTypes.EDGE;
TraversalDescription td = new TraversalDescriptionImpl()
.depthFirst()
.relationships(relType, Direction.OUTGOING);
for (Node node : inputs){
Traverser tv = td.traverse(node);
Iterator<Path> iter = tv.iterator();
// ... print path
}
I've tried uniqueness and depth settings as well, with no effect.
The query below returns all 14 paths using the web interface, but when I use the ExecutionEngine class, I only get 13 paths back.
START s=node(*)
MATCH (s)-[p:EDGE*]->(c)
WHERE s.type! = "INPUT" AND c.type! = "OUTPUT"
RETURN p
How do I get all the unique paths using the Java API?