对于以后与项目CAPS的特性,我需要将2个不同的图存储到一个中:
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
包含此模式:
使用Union All:
Graph3=Graph1.unionAll(Graph2)
我得到这张图:
如您所见,绿色节点是Graph2的没有关系的节点!那就是我没想到的。