我正在尝试建立一个社交网络。我正在使用Neo4j来显示不同用户,实体和城市等用户,音乐等用户和组等实体之间的关系。我在Facebook上提出 friend 建议,结果是根据许多标准来判断的,例如我们想建议 friend user1并尝试判断user2的建议,条件是:
上述所有标准都有不同的观点,最后平均完成,平均水平越高,在好友建议列表中user2的排名越高。
我想我已经有了 friend 建议的想法,但是我想通过cypher中的常规搜索查询在neo4j中实现它,并获得十大 friend 建议。
我的问题:
最佳答案
就像是:
MATCH (u:User {login:{login}})-[:LIVES_IN]->(location)
MATCH (u)-[:FRIEND]->(friend)<-[:FRIEND]-(other)
WITH u,location,other,count(*) as friends
MATCH (u)-[:LIKED]->(thing)<-[:LIKED]-(other)
WITH u,location,other,friends, count(*) as things
MATCH (other)-[:LIVES_IN]->(location)
RETURN u,other,friends+things as score
ORDER BY score DESC
LIMIT 10
关于facebook - 像Facebook一样在neo4j中提供的 friend 建议以及相关数据排名,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23601187/