对于项目CAPS的后续特征,我需要将 2 个不同的 Graph 存储到一个中:
Graph3=Graph1+Graph2
我试图寻找解决方案来做到这一点,我发现UNION ALL
但最后一个没有像我预期的那样工作。有没有另一种方法可以用 Cypher 做到这一点?
例子 :
val Graph1=session.cypher("""
| FROM GRAPH mergeGraph
| MATCH (from)-[via]->(to)
|WHERE substring(from.geohash,0,5)=substring(to.geohash,0,5)
| CONSTRUCT
| CREATE (h1:HashNode{geohash:substring(from.geohash,0,5)})-[COPY OF via]->(h1)
| RETURN GRAPH
""".stripMargin).graph
其中包含此模式:
val Graph2=session.cypher("""
| FROM GRAPH mergeGraph
| MATCH (from)-[via]->(to)
|WHERE substring(from.geohash,0,5)<>substring(to.geohash,0,5)
| CONSTRUCT
| CREATE (:HashNode{geohash:substring(from.geohash,0,5)})-[COPY OF via]->(:HashNode{geohash:substring(to.geohash,0,5)})
| RETURN GRAPH
""".stripMargin).graph
其中包含此模式:
与联合所有:
Graph3=Graph1.unionAll(Graph2)
我得到这张图:
如您所见,绿色节点是 Graph2 没有关系的节点!那是我没想到的。