Neo4j列出具有最多公共节点的节点

Neo4j列出具有最多公共节点的节点,neo4j,cypher,Neo4j,Cypher,不太确定这是否在Neo4j的范围内,所以如果我只是想做得太多,请告诉我 用两种类型的节点(User和Item)和一种类型的关系(LIKES)对一个图进行成像。我试图按照其他用户喜欢的类似项目的数量来列出用户节点。例如User1喜欢10个项目,而这10个项目都被其他用户喜欢;但是,所有其他用户都只喜欢这一项,因此列表看起来像 User1, 10 User2, 1 User3, 3 ... 我的想象是创建一个查询 MATCH (u:User)-[e:LIKES]->(i:Item)<-

不太确定这是否在Neo4j的范围内,所以如果我只是想做得太多,请告诉我

用两种类型的节点(
User
Item
)和一种类型的关系(
LIKES
)对一个图进行成像。我试图按照其他用户喜欢的类似项目的数量来列出用户节点。例如User1喜欢10个项目,而这10个项目都被其他用户喜欢;但是,所有其他用户都只喜欢这一项,因此列表看起来像

User1, 10
User2, 1
User3, 3
...
我的想象是创建一个查询

MATCH (u:User)-[e:LIKES]->(i:Item)<-e:LIKES]-(u2:User)
WITH u, count(u-->i<--u2) as num_common
RETURN u, num_common

MATCH(u:User)-[e:LIKES]->(i:Item)ii我知道怎么做了。我把我的问题简化为

MATCH (u:User)-[e:LIKES]->(i:Item)<-[e2:LIKES]-(u2:User)
RETURN u, count(i)
ORDER BY count(i) DESC
MATCH(u:User)-[e:LIKES]->(i:Item)