1

我有一个包含 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 获取所有唯一路径?

4

1 回答 1

0
START s=node(*) 
WHERE s.type = "INPUT" 
MATCH (s)-[p:EDGE*]->(c) 
WHERE c.type = "OUTPUT" 
RETURN p;

这有点像你所拥有的。它根据您提供的 Neo4j 控制台示例返回 14 个条目。

于 2014-02-22T06:34:35.250 回答