我使用neo4j作为图数据库,我想从该节点的邻居节点和所有相关的邻居返回深度从1到3不等。我正在做这个但它会卡住: 请注意,它是一个大图。Neo4j图深度遍历Cypher
start n = node(*) where n.NID contains "9606.ENS3"
MATCH (n)-[Rel1*1..3]-(m) RETURN m;
任何人都有线索如何遍历图上,并得到结果?
我使用neo4j作为图数据库,我想从该节点的邻居节点和所有相关的邻居返回深度从1到3不等。我正在做这个但它会卡住: 请注意,它是一个大图。Neo4j图深度遍历Cypher
start n = node(*) where n.NID contains "9606.ENS3"
MATCH (n)-[Rel1*1..3]-(m) RETURN m;
任何人都有线索如何遍历图上,并得到结果?
您的问题显示一个旧的Cypher语法。关于START子句的docs表示:
START子句只能在访问旧版索引时使用。在 所有其他情况下,请使用MATCH(请参见第3.3.1节“MATCH”)。
我认为这应该工作:
MATCH(n)-[Rel1*1..3]->(m)
WHERE n.NID contains "9606.ENS3"
RETURN m
任何线索都可以优化,因为它是大型数据集?浏览器错误 –
您可以尝试在'n'和'm'节点(例如'MATCH(n:NodeTypeA) - [Rel1 * 1..3] - >(m:NodeTypeB)'')中指定已知标签。在n.NID属性中创建一个索引也是一个好主意。 –
已经创建了一个唯一的约束,并添加标签使其成为bug –
什么Neo4j的版本是您使用?你遇到了什么错误? –
我正在使用3.2.1社区 –