我有超过1.3亿个某种类型的节点和50万个另一种类型的节点,我试图按以下方式创建它们之间的关系:
MATCH (p:person)
MATCH (f:food) WHERE f.name=p.likes
CREATE (p)-[l:likes]->(f)
问题在于已创建了1.3亿个关系,我希望以类似于
LOAD CSV
时使用的PERIODIC COMMIT
方式来执行此操作。是否有这样一种针对我的查询类型的功能?您需要结合LIMIT子句和将limit值作为参数来使用它。CALL apoc.periodic.commit(statement, params) - 重复批量更新语句,直到返回0,该过程是阻塞的
CALL apoc.periodic.commit("
MATCH (p:person)
WHERE p.likes IS NOT NULL
AND NOT (p)-[:likes]->(:food)
WITH p LIMIT {limit}
MATCH (f:food) WHERE p.likes = f.name
CREATE (p)-[:likes]->(f)
RETURN count(*)
", {limit: 10000})
CALL {} IN TRANSACTIONS
来进行批处理。 - InverseFalcon