我有一个~49M节点和~37M关系(~7GB)的图表,并运行以下查询:
MATCH (n:NAME {name: "dummy name"})-[:ID*1..2]-(similar_names:NAME {type:"name"}) RETURN DISTINCT(similar_names)
其中查询是从具有特定名称属性“虚拟名称”(唯一)的节点开始,并获取类型属性值为“name”的所有“NAME”标记节点,只要它们通过ID类型的边连接。此查询在结果方面效果很好,但需要超过850毫秒。虽然这不是最初的问题,但这只有2的深度,我的目标是无限的遍历深度。使用 - [:ID *],查询无法完成(在5分钟内)。
我已经为此查询中使用的标签的索引编制索引(这应该解决其他SO问题的答案,例如this。已经通过neo4j桌面浏览器执行查询,我已经配置了10GB的内存以确保'内存配置不是瓶颈。
有关如何进一步优化的任何想法?或者我可能做错了什么?