Neo4j Cypher - 使用LOAD CSV创建节点和设置标签

bic*_*nce 6 csv neo4j cypher load-csv

我正在尝试使用LOAD CSV创建节点,标签设置为CSV中的值.那可能吗?我正在尝试这样的事情:

LOAD CSV WITH HEADERS FROM 'file:///testfile.csv' AS line
CREATE (x:line.label)
Run Code Online (Sandbox Code Playgroud)

...但是我得到了无效的语法错误.有没有办法做到这一点?

Jim*_*ard 6

bicpence,

首先,使用Java批量导入应用程序非常容易,而且编写起来也不难.请参阅此批处理插件示例.您可以使用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;
Run Code Online (Sandbox Code Playgroud)

恩典与和平,

吉姆