使用cypher查找子图中未连接到指定节点的节点

时间:2014-03-11 06:35:27

标签: neo4j cypher recommendation-engine

我正在学习Neo4j的密码,但我遇到了一些问题,表明我仍然没有得到它。

我正在尝试编写一个查找子图的查询,然后从该子图中排除连接到指定节点的节点。

在实践中,这是一个推荐问题:我找到了一系列建议,但希望排除目标用户已经知道的那些内容。

我以为我可以做类似的事情:

match (u:User{id:"some id"}), (:Category{title:"some category"})-[:categorizes]->(i:Item) 
where not (u)-[:knows_about]-(i) 
return  i

但这不起作用。

任何人都可以解释我做错了什么/我应该做什么?

1 个答案:

答案 0 :(得分:2)

我想你想要以下内容:

MATCH (:Category{title:"some category"})-[:categorizes]->(i:Item)
MATCH (u:User {id:some_id})
WHERE  not (u)-[:knows_about]-(i) 
RETURN i

您可能希望在第二个WHERE子句中添加方向(性能!)。