【发布时间】:2016-11-04 06:24:51
【问题描述】:
我有一个 Neo4j 图,其中不同的节点通过有向关系连接。这个图包含循环。对于一组给定实体到一组目标实体,我想找到具有这种关系的最大路径中的所有实体。下面提供了我正在使用的查询: 注意:示例图中的节点数 = 1000,关系 = 2500,深度 = 无限。此外,我们的最终图可能包含多达 25000 个节点。
match (n:dataEntity) where id(n) in
[28, 4, 27, 151, 34, 36, 57, 59, 71, 73, 75, 119, 121, 140, 142, 144]
match (d:dataEntity) where NOT (d)-[:dependsOn]->(:dataEntity)
with distinct d ,n
match res =(n)-[:dependsOn*]->(d)
with d,n,nodes(res) as x
return x
这个查询的问题是它可以在深度 5 内正常工作,但由于我们要确定的深度不确定,所以需要花费太多时间,即超过 20 分钟。 提前感谢,如果您需要任何进一步的信息,请回复!!!
【问题讨论】: