如何解决合并重复路径
我正在尝试比较和合并相同的路径。我正在关注 this example,但它只是将路径中的每个元素与常量进行比较。
我的问题如下。考虑三个图
a->b->c->d
b->c->d
a->b->c->e
由查询CREATE p = (:x {name: 'a'}) -[:next]-> (:y {name: 'b'})-[:next]-> (:x {name: 'c'})-[:next]-> (:y {name: 'd'}),q = (:y {name: 'b'})-[:next]-> (:x {name: 'c'})-[:next]-> (:y {name: 'd'}),r = (:x {name: 'a'}) -[:next]-> (:y {name: 'b'})-[:next]-> (:x {name: 'c'})-[:next]-> (:y {name: 'e'}) RETURN *
创建
我想找到然后合并所有等效路径,以便得到:
a->b->c->d
|
v
e
我目前的想法是使用查询来收集列表中所有相同的路径,然后合并路径中的重叠节点和关系。例如,我想要一个查询来获取
[
[ [b-c-d,b-c-d],[a-b-c,a-b-c] ] // comparison of path 1 to paths 2 and 3
[ [b-c,b-c] ] // comparison of paths 2 and 3
]
然后我想提取所有唯一节点并使用 apoc.refactor.mergeNodes 合并它们。其次是 apoc.refactor.mergeRelationships 关于连接现在相同节点的关系。
这是正确的方法吗?我将如何构造查询来获取重叠路径?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。