neo4j:与大多数共同朋友返回前10名,以及一些更复杂的查询

时间:2014-02-24 15:10:10

标签: neo4j

我的图表数据库包含彼此是朋友的用户。 (用户)-write->(文本),(文本)-contains->(标记)。

现在我想返回以下查询:

  1. 返回与用户X拥有最多共同朋友的前10位用户 已完成此查询:此10个用户组的名称为Y

    MATCH (user:User)-[:FOLLOWS]->(mf)<-[:FOLLOWS]-(other)
    
    WHERE user.username = '@majorlyprofound'
    
    WITH other,count(DISTINCT mf) AS mutualFriends
    
    ORDER BY mutualFriends DESC
    
    LIMIT 10
    
    RETURN other
    
  2. 返回与Y组相关的前10位用户,但不是 与X的朋友。“Y组的朋友”意味着用户拥有尽可能多的人 Y组中的朋友尽可能(最多10人)。

  3. 返回与Y组相关的前10位用户,但不是 与X的朋友。并且具有与X相同标签的文本。按照排序 X使用标签的次数,以及用户拥有的次数 使用相同的标签。

  4. 我希望查询3是可以理解的,抱歉是因为英语不好。 非常感谢你的帮助。

0 个答案:

没有答案