This query finds the recommended friends for the origin that are working at the same place as the origin,
or know a person that the origin knows, also, the origin should not already know the target. This recommendation is
weighted for the weight of the relationship r2
, and boosted with a factor of 2, if there is an activity
-property on that relationship
Query
MATCH (origin)-[r1:KNOWS|WORKS_AT]-(c)-[r2:KNOWS|WORKS_AT]-(candidate) WHERE origin.name = "Clark Kent" AND type(r1)=type(r2) AND NOT (origin)-[:KNOWS]-(candidate) RETURN origin.name AS origin, candidate.name AS candidate, SUM(ROUND(r2.weight +(COALESCE(r2.activity, 0)* 2))) AS boost ORDER BY boost DESC LIMIT 10
This returns the recommended friends for the origin nodes and their recommendation score.
Result
origin | candidate | boost |
---|---|---|
2 rows | ||
|
|
|
|
|
|
Try this query live none MATCH (origin)-[r1:KNOWS|WORKS_AT]-(c)-[r2:KNOWS|WORKS_AT]-(candidate) WHERE origin.name = "Clark Kent" AND type(r1)=type(r2) AND NOT (origin)-[:KNOWS]-(candidate) RETURN origin.name as origin, candidate.name as candidate, SUM(ROUND(r2.weight + (COALESCE(r2.activity, 0) * 2))) as boost ORDER BY boost desc limit 10