cypher - 如何使用 Cypher 将两个不同的 Graph 存储为一个?
问题描述
对于项目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 没有关系的节点!那是我没想到的。
解决方案
推荐阅读
- javascript - 部分客户端更新 Chrome 后无法获取 IP
- angularjs - 使用 angular.copy
- symfony - [主键缺失值]
- deep-learning - Google Colab 中的 Yolo V3
- python - python - 如何使用模来查找一个数字是否可以被python中的第二个整除?
- php - 正则表达式在任何版本的 PHP 中都返回 false
- android - 如何在RelativeLayout Android上添加工具栏
- c++ - 为所需的 dll 文件设置自定义路径:电子应用程序
- .net-core - 无法在 .net 核心中使用带有证书身份验证的基本传输 http 绑定的 wcf 生成 utf-8 请求
- python - 使用python访问存储在redis中的数据