Neo4j在与大数据建立关系时卡住了

Neo4j在与大数据建立关系时卡住了,neo4j,cypher,bigdata,Neo4j,Cypher,Bigdata,我使用这个密码查询来创建Neo4j中两个节点之间的关系 MATCH (first:FIRSTNODE) with first MATCH (second:SECONDNODE) WHERE first.ID = second.ID CREATE (first)-[:RELATION]->(second) 第一个有100.000个节点,第二个有1.100.000个节点 我导入了csv文件,然后创建了两个表的索引;但是当我尝试使用关系neo4j运行查询时,它被卡住了,停止了工作。 我注意到,

我使用这个密码查询来创建Neo4j中两个节点之间的关系

MATCH (first:FIRSTNODE)
with first
MATCH (second:SECONDNODE)
WHERE first.ID = second.ID
CREATE (first)-[:RELATION]->(second)
第一个有100.000个节点,第二个有1.100.000个节点

我导入了csv文件,然后创建了两个表的索引;但是当我尝试使用关系neo4j运行查询时,它被卡住了,停止了工作。 我注意到,当这种情况发生时,cpu使用率达到100%

我使用的是8x4.0Ghz的cpu、10Gb的ram和SSD

你知道什么能帮我解决这个问题吗

编辑1: 使用它是有效的。但如果我运行第二个查询,如下所示:

call apoc.periodic.commit("
    MATCH (third:THIRDNODE)
    WHERE NOT (third)-[:RELATION2]->()
    WITH third LIMIT {limit}
    MATCH (second:SECONDNODE)
    WHERE third.ID = second.ID2
    CREATE (third)-[:RELATION2]->(second)
    RETURN count(*)
", {limit:10000})
它又卡住了

您可以尝试从中使用。关于此程序的文档说明:

apoc.periodic.commit(语句,参数)以 分离事务,直到返回0

安装APOC程序并尝试:

call apoc.periodic.commit("
    MATCH (first:FIRSTNODE), 
    WHERE NOT (first)-[:RELATION]->()
    WITH first LIMIT {limit}
    MATCH (second:SECONDNODE)
    WHERE first.ID = second.ID
    CREATE (first)-[:RELATION]->(second)
    RETURN count(*)
", {limit:10000})

请记住根据您使用的Neo4j版本安装APOC程序。查看.

中的第一个关系查询,它可以工作,但如果我必须在同一会话中执行另一个关系,它就不起作用anymore@NicolaCurr请你再解释一下你的问题好吗?我没有理解。我相信你忘了第一个节点的匹配,对吧?不,这是第二个和第三个节点之间的另一种关系。最后的关系应该是这样的:(第一)-[:relation]->(第二)&(第三)-[:RELATION2]->(第二)。要处理关系2,我必须运行另一个查询