在Neo4j的默认设置中,我使用查询
建立数据库CREATE (R1:resource { name : '1' }),
(R2:resource { name : '2' }),
(R3:resource { name : '2' }),
(F1:facility { name : '1' }),
(F2:facility { name : '2' }),
(F10)-[:OUT]->(R6),
(R6)-[:IN]->(F3)
为简单起见,我写了部分查询。为了解释,我有8个资源和25个设施,设施或资源与关系。我随机生成了1000个关系,现在我用
查询数据库match (m:facility)-[:OUT]->(n:resource)
-[:IN]->(k:facility)-[:OUT]->(l:resource)
-[:IN]->(o:facility) return m,n,k,l,o
但需要超过15分钟。这不奇怪 请帮忙 THX
答案 0 :(得分:1)
您还可以在查询中添加LIMIT 100,并尝试在neo4j-shell中对其进行分析
你必须在爆炸组合宽度方面降低基数。
match (m:facility)-[:OUT]->(n:resource)-[:IN]->(k:facility)
with distinct m,collect(n) as resources_n,k
match (k)-[:OUT]->(l:resource)
with distinct with with distinct m,collect(resources_n,k) as flow, l
match (l)-[:IN]->(o:facility)
return distinct m,flow,o
limit 100