neo4j cypher查询csv import

时间:2014-06-11 07:11:27

标签: neo4j

我从csv导入数据并使用neo4j2.1.1。我使用以下查询来查找带索引的节点....

'file:/tmp/test.csv' AS行开始

加载CSV
p = node:node_auto_index(mysqlPatientId = line[0])
set p.patDob = line[8]
return p;

但是我尝试了很多,但总是得到错误-------

SyntaxException: Invalid input 'l': expected whitespace, comment, "...string..." or a parameter (line 1, column 95)
"LOAD CSV FROM 'file:/tmp/10lpnew.csv' AS line Start p = node:node_auto_index(mysqlPatientId = line[0])"

提前感谢.. !!

1 个答案:

答案 0 :(得分:2)

我猜LOAD CSV与遗留索引的效果不佳。因此,我建议在具有mysqlPatientId

的所有节点上设置标签
MATCH (n) WHERE HAS(n.mysqlPatientId) SET n :Patient

如果您有大量这些节点,请考虑使用SKIP和LIMIT来使用合理的交易规模,例如

MATCH (n) WHERE HAS(n.mysqlPatientId) SET n :Patient SKIP 0 LIMIT 20000
MATCH (n) WHERE HAS(n.mysqlPatientId) SET n :Patient SKIP 20000 LIMIT 20000
MATCH (n) WHERE HAS(n.mysqlPatientId) SET n :Patient SKIP 40000 LIMIT 20000

完成后,创建架构索引:

CREATE INDEX ON :Patient(mysqlPatientId)

接下来是在neo4j.properties中切换自动索引。

导入CSV不应该这样:

LOAD CSV FROM 'file:/tmp/test.csv' AS line Start
MERGE (p:Patient { mysqlPatientId: line[0], patDob: line[8] })