cypher neo4j - 收集一组节点

时间:2017-04-07 07:56:35

标签: neo4j cypher

我尝试在neo4j项目中获取节点集合

我的db尝试通过评级描述用户和电影之间的连接

所以我用链接" RATED"将用户链接到电影。具有评级值(1-5)

此外,我将用户与他们自己联系起来" SIMILARITY"链路

现在我有一群喜欢他们的用户

the groups of users

我希望看到每组相似度用户:喜欢该电影的电影组(喜欢=评分> = 4)

example

在这个例子中我的结果是:爆发,与狼共舞,披露

1 个答案:

答案 0 :(得分:0)

现在您已在用户之间创建了直接关系SIMILAR,您必须运行社区检测算法,以便定义不同的用户组。您可以使用apoc.algo函数使用apoc plugin为neo4j运行它。

CALL apoc.algo.community(25,['User'],'community','SIMILAR','BOTH',1,10000)

现在您已使用社区检测算法定义了用户组,您可以简单地查询不同的用户组(如

//You can also set additional filters when matching movies groups liked
MATCH (user:User)-[rel:LIKED]->(m:Movie) where rel.rating > 3.5
RETURN distinct(user.community) as group,collect(m.title) as movies

知道这是如何实现这一点的非常简单的版本。我建议您查看this graphgist,也许this video

希望这有帮助