Neo4j查询,返回用户兴趣和相关兴趣

Neo4j查询,返回用户兴趣和相关兴趣,neo4j,cypher,Neo4j,Cypher,我有两个Neo4j节点,用户和兴趣。用户与兴趣相关,兴趣可以连接到其他兴趣 我想写一个密码查询,检索用户的兴趣,但也告诉我哪些兴趣是连接的。如果兴趣与用户不感兴趣的其他兴趣相关,则不应返回这些兴趣 例如,鲍勃对金融和比特币感兴趣,金融和比特币是相互联系的。比特币也连接到区块链,但用户对此不感兴趣,因此不应返回此关系 以下是我到目前为止的情况: MATCH (u:User)-[r:INTERESTED_IN]-(i:Interest) WHERE u.name = 'Bob' RETURN u

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

我想写一个密码查询,检索用户的兴趣,但也告诉我哪些兴趣是连接的。如果兴趣与用户不感兴趣的其他兴趣相关,则不应返回这些兴趣

例如,鲍勃对金融和比特币感兴趣,金融和比特币是相互联系的。比特币也连接到区块链,但用户对此不感兴趣,因此不应返回此关系

以下是我到目前为止的情况:

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

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

尝试以下方法:


匹配
(u:用户)-[r1:感兴趣]-(i1:感兴趣),
(u) -[r2:感兴趣]-(i2:感兴趣),
(i1)-[:相关]-(i2)
其中u.name='Bob'
返回u、r1、i1、r2、i2


在这里,我假设利益是通过
:related
关联的,根据需要进行调整。

非常感谢。这适用于兴趣相关的用户,但如果兴趣不相关,则没有结果。是否可以更新查询以处理这两种情况?是--在
(i1)-[:RELATED](i2)
上使用可选匹配