如何使用Cypher查找neo4j上断开连接的节点?

如何使用Cypher查找neo4j上断开连接的节点?,neo4j,graph-databases,cypher,Neo4j,Graph Databases,Cypher,我在玩弄neo4j,注意到所有Cypher查询都需要在START子句中有一个起点。 我想知道如何使用Cypher查找所有断开连接的节点 谢谢你不能。使用今天的Cypher无法进行图形全局查询。如果所有节点都已索引(例如通过自动索引),则可以使用索引查询作为起点,然后查找没有传出关系的节点 start n=node:node_auto_index("id:*") match n-[r?]->m where r is null return n 现在我宁愿使用: start n=node:n

我在玩弄neo4j,注意到所有Cypher查询都需要在
START
子句中有一个起点。 我想知道如何使用Cypher查找所有断开连接的节点


谢谢

你不能。使用今天的Cypher无法进行图形全局查询。

如果所有节点都已索引(例如通过自动索引),则可以使用索引查询作为起点,然后查找没有传出关系的节点

start n=node:node_auto_index("id:*")
match n-[r?]->m
where r is null
return n
现在我宁愿使用:

start n=node:node_auto_index("id:*")
where not (n-->m)
return n

我使用类似的东西,但只有在我使用spring-data-neo4j时:

    start n = node:__types__(className="com.app.entity.Model")
    // match, where...
    return n

希望有帮助

使用neo4jv3.0+I只需使用

MATCH (n)
WHERE NOT (n)--()
RETURN n

(或其变体)。查询速度相当快

有什么方法可以追溯索引吗?是的,但是您必须创建所需的索引,然后遍历所有节点并在适当的地方添加它们。在本机JavaAPI中,您将使用REST或webadmin。。。有希望吗?应该可以使用gremlin控制台。首先启用自动索引,然后执行gremlin脚本。手头没有语法,但是像g.V.each{it,idx->it.id=idx}就足够了。这不能很好地回答这个问题。查询仍将匹配通过入站连接连接到图形的节点。它们现在(Neo4j 1.7)的起始n=节点(*)匹配。。。哪里这个答案最终被否决了,但它在发布时似乎是准确的