Cypher多层数据请求导致客户端崩溃

时间:2017-04-10 18:06:09

标签: neo4j cypher

我在查询时无法提取数据库的子集。 数据是7层深,当我尝试通过我的应用程序或neo4j客户端提取结果时,它会导致崩溃。 数据库不是很大,总共有6556个节点,我在每一步都添加了语句,以防止创建巨大的笛卡尔积。我猜测我已经误解了数据收集的情况,但是当我运行'解释'在查询上,它最多以529行开头并快速减少。 关于如何改进这一点的任何建议,或者对正确方法的指导将不胜感激。

MATCH (g:G)
with g, { Name:g.Name, Id:g.Guid } as g_
MATCH (f)-[:HASG]->(g)
WITH f, { Name:f.Name, Id:f.Guid, Children:collect(distinct g_)} as f_
MATCH (e)-[HASF]->(f)
WITH e, { Name:e.Name, Id:e.Guid, Children:collect(distinct f_)} as e_
MATCH (d)-[:HASE]->(e)
WITH d, { Name:d.Name, Id:d.Guid, Children:collect(distinct e_)} as d_
MATCH (c)-[:HASD]->(d)
WITH c, { Name:c.Name, Id:c.Guid, Children:collect(distinct d_)} as c_
MATCH (b)-[:HASC]->(c)
WITH b, { Name:b.Name, Id:b.Guid, Children:collect(distinct c_)} as b_
MATCH (a)-[:HASB]->(b)
WITH { Name:a.Name, Id:a.Guid, Children:collect(distinct b_)} as a_
RETURN a_

0 个答案:

没有答案