1
我有一个用户评级电影的电影数据库。我想找到用户1的前5名最相似的用户(第一次MATCH可以正常工作),并向他推荐那些由类似用户观看但用户1没有观看的最受欢迎的电影。即使我拥有多次相同的电影在我的查询中“distinct”。我究竟做错了什么?多个MATCH查询中的不同节点
MATCH (target_user:User {id : 1})-[:RATED]->(m:Movie)
<-[:RATED]-(other_user:User)
WITH other_user, count(distinct m.title) AS num_common_movies, target_user
ORDER BY num_common_movies DESC
LIMIT 5
MATCH other_user-[rat_other_user:RATED]->(m2:Movie)
WHERE NOT (target_user-[:RATED]->m2)
WITH distinct m2.title as movietitle, rat_other_user.note AS rating,
other_user.id AS watched_by
RETURN movietitle, rating, watched_by
ORDER BY rating DESC
谢谢你彻底解释它。我以为我回到了真正的不同的电影,而不是用户对电影的每一个不同的评价。我希望我能给你演示的奖励积分! – FloIancu 2014-10-04 16:23:33