cypher neo4j - 收集一组节点
Posted
技术标签:
【中文标题】cypher neo4j - 收集一组节点【英文标题】:cypher neo4j - collect a group of nodes 【发布时间】:2017-04-07 07:56:34 【问题描述】:我尝试在我的 neo4j 项目中获取节点集合
我的数据库尝试通过评分来描述用户和电影之间的联系
所以我使用具有评分值(1-5)的链接“RATED”将用户链接到电影
此外,我通过“相似性”链接将用户与他们自己联系起来
现在我有一组喜欢他们之间的用户
the groups of users
我想查看每组相似度用户:喜欢该电影的电影组(喜欢=评分>=4)
example
在这个例子中我的结果是:爆发,与狼共舞,披露
【问题讨论】:
你如何尝试得到结果? 您是否使用一些社区算法来尝试定义您的相似人群? 我不知道如何构建返回电影组的查询(针对每个相似性用户组) 如何获得相似度用户群?仅在用户之间建立具有相似性的关系是不够的。 我创建了用户之间的相似关系:用户与其他用户相似:如果他们有至少 50% 的共同电影是他们喜欢的 【参考方案1】:现在您已经在用户之间创建了直接关系SIMILAR
,您必须运行社区检测算法,以便它定义不同的用户组。您可以使用apoc.algo
函数运行它,并使用apoc plugin for 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。
希望对你有帮助
【讨论】:
感谢您的回答,但我不知道如何安装neo4j在windows机器上运行的插件,所有教程都是针对linux机器的 下载neo4j的zip版本,安装指南在这里...neo4j.com/docs/operations-manual/current/installation/windows ...然后只需将apoc.jar文件复制到neo4j/plugins目录中即可以上是关于cypher neo4j - 收集一组节点的主要内容,如果未能解决你的问题,请参考以下文章