1
我有一個Neo4j圖,有12個輸入和4個輸出,我試圖用Java Traverser編寫一個查詢,它將返回從輸入到輸出節點的14條唯一路徑。我試過的所有查詢都只返回14個路徑的一個子集。例如,下面的代碼返回4個路徑,但其他10個都停止輸出1個節點。通過Neo4j圖尋找獨特的路徑
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的所有唯一路徑?
您的數據集足夠小,可以在[Neo4j控制檯](http://console.neo4j.org)上發佈,並分享鏈接?此外,您的密碼查詢可能不會返回您認爲的路徑,如果您想要路徑,請嘗試在'MATCH'子句中將'path ='預先加入模式並返回'path'。你的'p'是一組關係。 – jjaderberg
測試數據位於http://console.neo4j.org/?id=1nom33。 – Larry