GraphGists

以下查询找到与源节点(本例中为Clark Kent)在同一地点工作的推荐好友。推荐好友认识源节点认识的人,并且不认识源节点本身。

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, collect(r2.activity) AS activity, collect(r2.weight) AS weight

此推荐根据关系r2的权重进行加权,如果该关系上存在activity属性,则权重提升2倍。

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

这将返回源节点的推荐好友及其推荐分数。