我正在尝试使用LOAD CSV创建标签设置为CSV值的节点。那可能吗?我正在尝试类似的方法:
LOAD CSV WITH HEADERS FROM 'file:///testfile.csv' AS line
CREATE (x:line.label)
...但是我收到无效的语法错误。有什么办法吗?
最佳答案
比比肯斯
首先,使用Java批量导入应用程序很容易做到这一点,而且编写起来也不难。参见this batch inserter example。您可以使用opencsv读取CSV文件。
如果您想坚持使用Cypher,并且要使用一组有限的标签,则可以执行以下操作:
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM 'file:///testfile.csv' AS LINE
CREATE (n:load {lab:line.label, prop:line.prop});
CREATE INDEX ON :load(lab);
MATCH (n:load {lab:'label1'})
SET n:label1
REMOVE n:load
REMOVE n.lab;
MATCH (n:load {lab:'label2'})
SET n:label2
REMOVE n:load
REMOVE n.lab;
恩典与和平
吉姆
关于csv - Neo4j Cypher-使用LOAD CSV创建节点并设置标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24992977/