我拥有数百万个节点的人员和公司标签。 我正尝试创建一个关系: (person)-[:WORKS_AT]->(company)
根据两个标签中存在的唯一公司编号属性。 我试图用下面的查询来做到这一点: MATCH (company:Company), (person:Person) WHERE company.companyNumber=person.comp_number CREATE (person)-[:WORKS_AT]->(company)
但这个查询需要很长时间才能执行并最终失败。 我有索引companyNumber
和comp_number
。 所以,我的问题是:它有一种方法来创建段的关系,例如(50000,然后再50000等...)?Neo4j将大量关系添加到已有的节点
0
A
回答
0
使用临时标签将事情标记为已完成,并在创建关系之前添加限制步骤。当你全部完成后,只需从每个人中删除标签。
MATCH (company:Company)
WITH company
MATCH (p:Person {comp_number: company.companyNumber})
WHERE NOT p:Processed
WITH company, p
LIMIT 50000
MERGE (p) - [:WORKS_AT] -> (company)
SET p:Processed
RETURN COUNT(*) AS processed
这将返回已处理行的数量(通常为50000)当它返回小于50000(或任何你设定的限制)时,你都完成了。直到你得到的结果小于50000你或许可以把所有这些数字可达10或者更多,这取决于你的数据库设置
MATCH (n:Processed)
WITH n LIMIT 50000
REMOVE n:Processed
RETURN COUNT(*) AS processed
:运行这个家伙呢。
相关问题
- 1. Neo4j密码查询将关系添加到现有节点
- 2. 插入大量的节点到Neo4J
- 3. 不能在neo4j中添加多个节点之间的关系
- 4. Neo4j Cypher查询找到有关系的连接节点
- 5. Neo4j查询到具有相同关系的多个节点
- 6. 复制neo4j中的节点和关系
- 7. 添加关系后需要再次找到节点实体(neo4j/java/spring)
- 8. 如何可视化Neo4J节点关系?
- 9. Neo4j插入节点与各种关系
- 10. 在Neo4j节点之间创建关系
- 11. 在Neo4j中,能找到其关系是另一个节点关系超集的所有节点吗?
- 12. 获取Neo4j中没有特定关系的所有节点
- 13. 在Neo4j中匹配有和没有关系的节点
- 14. 如何删除neo4j中的所有节点和所有关系
- 15. 将节点添加到节点列表
- 16. Neo4j将属性从CSV添加到节点
- 17. 查找与Neo4j中的输入节点有特定关系的节点
- 18. 获取不具有一定的关系(CYPHER/Neo4j的)节点
- 19. Neo4J - 创建大量关系(360万)
- 20. NEO4J节点根据关系过滤节点
- 21. Neo4j匹配与一个或另一个节点有关系的节点
- 22. 将现有的neo4j与csv进行比较,并从csv添加缺失的节点和关系
- 23. 将节点添加到div
- 24. 将节点添加到XML
- 25. 将节点添加到树
- 26. 的Neo4j找到一个节点,以创建关系
- 27. Neo4j删除标签中的所有节点及其关系
- 28. 删除用户Neo4j中的所有关系和连接节点
- 29. cypher删除关系数大于数的所有节点关系
- 30. 如何使用Structr平台将新节点添加到现有关系?
请注意,有一个APOC过程[apoc.periodic.iterate()](https://neo4j-contrib.github.io/neo4j-apoc-procedures/#_apoc_periodic_iterate),可以帮助批量处理它,因此它不会不必手动完成。由于我在使用a:Tore解决方案中使用a:Processed标签时自己尝试时遇到的一些潜在错误,因此我现在不会将其作为实际答案提交。如果他们修复它,我会提交它作为一个可行的解决方案。 – InverseFalcon