2014-06-11 225 views
2

我從csv導入數據並使用neo4j2.1.1。我用下面的查詢找到索引節點....neo4j cypher查詢csv導入

LOAD CSV FROM 'file:/tmp/test.csv' AS線開始

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])" 

在此先感謝.. !!

+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] })