我有一个包含 12 个输入和 4 个输出的 Neo4j 图,并且正在尝试使用 Java Traverser 编写一个查询,该查询将返回从输入到输出节点的 14 个唯一路径。我尝试过的所有查询都只返回 14 条路径的一个子集。例如,下面的代码返回 4 条路径,但其他 10 条都停止了 1 个节点的输出。
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
}
我也尝试过唯一性和深度设置,但没有任何效果。
下面的查询使用 Web 界面返回所有 14 条路径,但是当我使用 ExecutionEngine 类时,我只返回 13 条路径。
START s=node(*)
MATCH (s)-[p:EDGE*]->(c)
WHERE s.type! = "INPUT" AND c.type! = "OUTPUT"
RETURN p
如何使用 Java API 获取所有唯一路径?