查找没有特定关系的节点

时间:2016-01-17 14:36:06

标签: neo4j cypher

让我们假设以下情况。我们的数据库具有Person个节点和Knows个关系。找到相互了解的人是微不足道的,但如何编写返回特定人不知道的所有人的查询?我能想到的唯一方法是:

match (n), (m) where not (n)-->(m) and n.id = 1 return n,m;

此查询的明显缺点是笛卡尔积,因此对于大量数据,此查询将非常慢。但是还有其他解决方案吗?我尝试使用OPTIONAL MATCH,但由于r为m而没有null节点,因此无效。

1 个答案:

答案 0 :(得分:1)

从技术上讲,它是一种笛卡尔积,但由于一旦锚定到单个节点,搜索空间就在Sensor上。您是否尝试过对查询进行基准测试?

另外,我想知道尝试这个:

m