在创建节点后导入Neo4j中的关系有困难

时间:2017-11-07 15:04:08

标签: neo4j cypher relationship bulk

我正在使用Neo4j社区版。我在neo4j中创建了13m节点。然后,从CSV文件创建关系。这个过程太慢了。

LOAD CSV WITH HEADERS FROM "file:///re.CSV" AS csvLine 
WITH csvLine
LIMIT 3
MATCH(p:actor), (m:movie)
WHERE m.mid=toInteger(csvLine.mid)
    AND p.pid=toInteger(csvLine.pid)
CREATE(p)-[a:Acted{ptime:csvLine.ptime}]->(m)

Set 3 properties, created 3 relationships, completed after 128618 ms.

我很感激对此问题的任何帮助。

1 个答案:

答案 0 :(得分:1)

您引用的索引(CREATE INDEX ON :movie(name,mid) CREATE INDEX ON :actor(name,pid))用于复合索引,这要求所有索引属性都存在以供查找。

但是在你的查询中,你只是通过pid(不是pid和名字)获得演员,而是通过mid(不是mid和名字)获得电影。如果要通过单个属性索引查找,请仅在该属性上创建索引。

另外,请查询您的查询以查看查询计划(如果可以,请查看PROFILE,但仅适用于完成执行的查询)。这通常可以为您提供关于是否正在使用索引查找的提示,或者它是否会回退到标签扫描。