Neo4j为150M节点和100M边缘创建丢失连接

Neo4j为150M节点和100M边缘创建丢失连接,neo4j,cypher,Neo4j,Cypher,我正在为我的图形结构(如下所示)运行一些可伸缩性测试,并使用neo4j浏览器界面创建和查询图形。在运行以下命令时,500000个节点(大于2M的图形)可以工作,这不仅可以最大限度地提高CPU使用率,而且还可以断开与本地服务器的连接(假设超时是因为需要很长时间?) FOREACH(范围(150000000)内的r|CREATE(:entity{id:r})-[:IN_ASSOCIATION]->(iassoc:ASSOCIATION{id:r})(:doc{id:r})) 是否有更好的替代方案来

我正在为我的图形结构(如下所示)运行一些可伸缩性测试,并使用neo4j浏览器界面创建和查询图形。在运行以下命令时,500000个节点(大于2M的图形)可以工作,这不仅可以最大限度地提高CPU使用率,而且还可以断开与本地服务器的连接(假设超时是因为需要很长时间?)

FOREACH(范围(150000000)内的r|CREATE(:entity{id:r})-[:IN_ASSOCIATION]->(iassoc:ASSOCIATION{id:r})(:doc{id:r}))
是否有更好的替代方案来生成大量节点并填充neo4j

安装并尝试使用以下步骤进行操作
apoc.periodic.iterate

CALL apoc.periodic.iterate(
    "WITH range(1, 50000000) AS rs UNWIND rs AS r RETURN r",
    "CREATE (:entity {id:r})-[:IN_ASSOCIATION]->(iassoc:association{id:r})<-[:IN_ASSOCIATION]-(:entity{id:r+50000000}), (iassoc)-[:IN_DOC]->(:doc{id:r})",
{batchSize:10000, parallel:true})
调用apoc.periodic.iterate(
“范围(15000000)为rs退绕rs为r返回r”,
“创建(:entity{id:r})-[:IN_ASSOCIATION]->(iassoc:ASSOCIATION{id:r})(:doc{id:r})”,
{batchSize:10000,parallel:true})
关于此程序的文档说明:

使用
apoc.periodic.iterate
可以提供两条语句,第一条是 语句提供要处理的值流。第二,, 内部语句一次处理一个元素(…)

因此,第一条语句将
r
从1返回到50000000。第二条语句接收
r
作为参数,并根据需要创建节点和关系

注意:请记住根据您使用的Neo4j版本安装APOC程序。看一看报纸


注意(2):插件文件夹需要位于数据库文件夹而不是安装文件夹中(除非手动将配置文件更改为直接指向安装文件夹)。

谢谢!除了文档之外,还需要添加一个简短的说明:插件文件夹需要位于数据库文件夹中,而不是安装文件夹中(除非手动将配置文件更改为直接位于安装文件夹中)。另外,如果其他人正在构建类似的东西,则插入需要很长时间。
CALL apoc.periodic.iterate(
    "WITH range(1, 50000000) AS rs UNWIND rs AS r RETURN r",
    "CREATE (:entity {id:r})-[:IN_ASSOCIATION]->(iassoc:association{id:r})<-[:IN_ASSOCIATION]-(:entity{id:r+50000000}), (iassoc)-[:IN_DOC]->(:doc{id:r})",
{batchSize:10000, parallel:true})