首页 > 解决方案 > Neo4j中的火种算法?

问题描述

假设我们有关系:LIKED:PASSED例如:

(:User1)-[:LIKED]->(:User2)
(:User1)-[:PASSED]->(:User3)

我相信 Tinder 算法会做这样的事情。您将如何返回以下查询:

标签: neo4j

解决方案


所以一个像这样的查询(给定一个已知的用户开始):

MATCH (u1:User {id: "known userid"})<-[l1:LIKES]-(u2:User)<-[l2:LIKES]-(u3)
WHERE NOT ((u1)-[]->(u2)) 
WITH DISTINCT u2.name as recommended, count(DISTINCT l2) as attractioncount
WHERE attractioncount > 10
RETURN recommended

10当然是我选择的任意值。您决定正确的建议是什么。

希望这可以帮助。

问候,汤姆


推荐阅读