Neo4j查询可恢复用户兴趣和相关兴趣

时间:2018-06-21 10:00:59

标签: neo4j cypher

我有两个Neo4j节点,用户和兴趣点。用户与兴趣相关,并且兴趣可以与其他兴趣相关。

我想编写一个Cypher查询,该查询可以检索用户的兴趣,但是还可以告诉我哪些兴趣相关。如果这些利益与用户不感兴趣的其他利益有关,则不应将其退还。

因此,例如,鲍勃(Bob)对金融和比特币感兴趣,而金融和比特币则相互关联。比特币也连接到了区块链,但用户对此并不感兴趣,因此不应返回这种关系。

这是我到目前为止所拥有的:

MATCH (u:User)-[r:INTERESTED_IN]-(i:Interest) 
WHERE u.name = 'Bob' 
RETURN u, r, i

这会带回个人兴趣,但是有一种简单的方法可以在同一查询中带回关联的兴趣吗?

1 个答案:

答案 0 :(得分:0)

尝试这样的事情:

MATCH (u:User)-[r1:INTERESTED_IN]-(i1:Interest), (u)-[r2:INTERESTED_IN]-(i2:Interest), (i1)-[:RELATED]-(i2) WHERE u.name = 'Bob' RETURN u, r1, i1, r2, i2

这里我假设兴趣是通过:RELATED关联的,请根据需要进行调整。