我试图通过使用py2neo python模块(py2neo.cypher.execute)执行cypher命令,将大量节点(〜500,000)插入(非嵌入式)neo4j数据库。最终,我需要消除对py2neo的依赖,但是在我了解有关cypher和neo4j的更多知识之前,我一直在使用它。我有两个节点类型A和B,绝大多数节点都是类型A。有两个可能的关系r1和r2,即A- [r1] -A和A- [r2] -B。类型A的每个节点将具有0-100 r1关系,类型B的每个节点将具有1-5000 r2关系。目前,我正在通过构建大型CREATE语句来插入节点。例如我可能有一个声明CREATE (:A {uid:1, attr:5})-[:r1]-(:A {uid:2, attr:5})-[:r1]-...其中...可能是另外5000个左右的节点和关系,它们在图中形成了一条线性链。可以,但是很慢。我也在使用这些索引节点CREATE INDEX ON :A(uid)添加所有类型A节点后,再次使用CREATE语句添加类型B节点。最后,我尝试使用类似以下的语句添加r2关系MATCH c:B, m:A where c.uid=1 AND (m.uid=2 OR m.uid=5 OR ...)CREATE (m)-[:r2]->(c)其中...可以代表几千个OR语句。这似乎真的很慢,每秒仅添加几个关系。那么,有没有更好的方法可以做到这一点?我在这里完全偏离轨道吗?我看了这个问题,但这并没有解释如何使用密码来有效地加载节点。我看的其他所有内容似乎都在使用Java,但未显示可以使用实际的密码查询。
添加回答
举报
0/150
提交
取消