【发布时间】:2016-02-07 00:43:57
【问题描述】:
我有一个包含约 89K 节点和约 120 万关系的图,并试图通过以下 Cypher 查询获得单个节点的传递闭包:
start n=NODE(<id of a single node of interest>)
match (n)-[*1..]->(m)
where has(m.name)
return distinct m.name
不幸的是,这个查询消失了,似乎没有回来(尽管公平地说,此时我只给了它大约一个小时的执行时间)。
关于如何优化我在这里得到的东西的任何建议,或者更好的方法来满足要求?
注意事项:
- Neo4J v2.0.0(通过 Homebrew 安装)。
- Mac OSX 10.8.5
- Oracle Java 1.7.0_51
- 8GB 物理 RAM(neo4j JVM 分配任何默认值)
- 数据库托管在 SSD 卷上。
- 查询是通过管理 Web UI 的“数据浏览器”提交的。
- “名称”是一个自动索引字段。
- CPU 使用率相当低 - 平均约为 8 个内核的 20%。
- 我还没有开始分析 Neo4J 服务器 - 我第一次尝试锁定了 VisualVM。
【问题讨论】:
-
你的图中有循环吗?