我在节点之间有重复的关系,例如:
A ->{weight: 1} B
A ->{weight: 1} B
A ->{weight: 1} B
我想将这些关系合并为一个形式的关系: A->{weight: 3} B 用于我的整个图表。
我尝试了类似以下的方法:
start n = node(*)
match (n)-[r:OCCURENCE]->()
Set r.weight = count(*)
count(*)
但是我的图非常大,并且通过此查询,每个节点 A 和 B 的边都更新了两次。此外,旧的关系不会被删除。不知道如何在一个查询中对这两个方面进行建模。希望有人可以提供帮助。
编辑:
用 node( ) 和 relationship( ) 尝试了一些其他查询,例如
start n = node(*) match ()-[r:OCCURENCE]->() set n.SumEdgeWeight = sum(r.weight)
他们的处理速度非常慢。当我需要更新所有节点时,还有其他更快的方法吗?我在 Neo4j 社区中找到了这个主题 [1]。我的查询是否有可能使用 java 核心 api 更快地运行?
[1] https://groups.google.com/forum/#!topic/neo4j/4SSxvNsuQsY
问候。