我想根据用户查看或更新文件的次数来计算特定用户的“公司索引”。为了得到这个,我将赋值给特定的路径。这是一个例子:从1个密码查询中的几个关系中提取权重
(u1:User {name: 'Alice'})-[:UPDATED]->(f:File)<-[:VIEWED]-(u2:User) // is worth 0.2 points
(u1:User {name: 'Alice'})-[:VIEWED]->(f:File)<-[:VIEWED]-(u2:User) // is worth 0.1 points
(u1:User {name: 'Alice'})-[:VIEWED]->(f:File)<-[:UDATED]-(u2:User) // is worth 0.2 points
(u1:User {name: 'Alice'})-[:UPDATED]->(f:File)<-[:UPDATED]-(u2:User) // is worth 0.5 points
我想知道查询是如何看起来像返回以下结果。
User: Alice, User: Charly, index: (3 * 0.2) // 3 because there are 3 matching paths (Relationship with the lowest weight in the path)
User: Alice, User: Bob, index: (3 * 0.1)
这是我到目前为止有:
MATCH (u1:User {name:'Alice'})-[r1:VIEWED]->(f:File)<-[r2:UPDATED]-(u2:User)
OPTIONAL MATCH (u1:User {name:'Alice'})-[r3:VIEWED]->(f:File)<-[r4:VIEWED]-(u3:User)
RETURN u2.name, min(r1.weight) AS ViewUpd, u3.name, min(r3.weight) AS ViewView
该查询根本不能工作,但我希望它澄清我想要什么。
您能否给我们提供更多关于您的关系的信息(例如,如果他们有一个重量属性,这可能是有用的) – Supamiu
当然。关系被标记为VIEWED或UPDATED。嘿拥有的唯一属性称为weight,它表示用户更新或查看文件的频率。 – markai