如何使用Neo4j对节点之间的权重求和

时间:2018-11-01 07:05:18

标签: neo4j

我只是创建如下图:

  

(用户)-[:视图]->(产品)<-[:视图]-(用户)

以下是我的查询:

match (a:User{user_cd:'3151004'})-[r1:view_times]-()-[r2:view_times]-(b:User),
(a)-[ra:view_times]-(),(b)-[rb:view_times]-()
with sum(r1.count) as r1, sum(r2.count) as r2,sum(ra.count) as rac,sum(rb.count) as rbc,a,b
where r1/rac > 0.6 and r2/rbc >0.6
return a,b,rac,rbc,r1,r2

r1:连接a和b上的(a)和(产品)之间的权重

r2:在连接a和b上的(b)和(产品)之间的权重

rac:连接到(a)的view_times属性的所有权重

rbc:连接到(b)的view_times属性的所有权重

但是我得到了错误的rac,rbc值,并且我不知道哪里出了错

谢谢

1 个答案:

答案 0 :(得分:0)

此查询需要完成更多的步骤。例如:

MATCH (ap1:Airport)<-[:FROM]-(r:Route)-[:TO]->(ap2:Airport)
WHERE id(ap1) <> id(ap2)
WITH ap1, ap2, COUNT(*) AS weight
CREATE (ap1)-[c:CONNECTED]->(ap2)
SET c.weight = weight

这里我计算在WITH子句中找到的模式数量。在WITH子句之后,我可以添加第二个MATCH子句。