将 csv 文件导入 neo4j
Importing csv file into neo4j
我正在开始使用 neo4j,但是我在从 csv 文件导入一些数据时遇到了问题。
我的代码如下:
CREATE CONSTRAINT ON (w:word) ASSERT w.stem IS UNIQUE
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:/home/quentin/.pfe/short_abstracts_fr0.csv" AS row
MATCH (a:article {title: row.article})
MATCH (w:word {stem: row.word})
MERGE (a)-[r:contains {count:row.count}]->(w)
这不会造成任何错误,但不会导入任何内容。我的 csv 文件位置很好,它的内容如下:
article,word,count
Aux_couleurs_du_Moyen_Âge,accompagné,1
Aux_couleurs_du_Moyen_Âge,auss,1
Aux_couleurs_du_Moyen_Âge,banquet,1
我已经使用 ::
导入了 2 个类似的 csv 文件
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:/home/quentin/.pfe/category_relations_csv" AS row
MATCH (a:article {title: row.article})
MATCH (cat:category {label: row.categorie})
MERGE (a)-[:is_under]->(cat)
和
MATCH (c0:category {label: row.cat0})
MATCH (c1:category {label: row.cat1})
MERGE (c0)-[r:relates {type:row.link}]->(c1)"
如果有人知道它有什么问题。
您确认它匹配 a
和 w
了吗?如果未找到 a
和 w
之一或两者,则您的 MERGE
语句将不会创建任何内容。尝试输出结果,而不是尝试 MERGE
。
例如
LOAD CSV WITH HEADERS FROM "file:/home/quentin/.pfe/short_abstracts_fr0.csv" AS row
MATCH (a:article {title: row.article}), (w:word {stem: row.word})
RETURN a.article, w.word
如果您知道它们还不存在,那么您可以省略 MATCH
子句。
例如
CREATE CONSTRAINT ON (w:word) ASSERT w.stem IS UNIQUE
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:/home/quentin/.pfe/short_abstracts_fr0.csv" AS row
MERGE (a:article {title: row.article})-[r:contains {count:row.count}]->(w:word {stem: row.word})
同样,如果您希望模式的一端已经存在,则只包含一个 MATCH
子句。从您的查询和添加的约束来看,您可能希望创建带有 :Word
标签的节点。如果是这样,您的查询可能如下所示。
CREATE CONSTRAINT ON (w:word) ASSERT w.stem IS UNIQUE
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:/home/quentin/.pfe/short_abstracts_fr0.csv" AS row
MATCH (a:article {title: row.article})
MERGE (a)-[r:contains {count:row.count}]->(w:word {stem: row.word})
但是,最好先创建节点,然后再创建关系模式。希望这对您有所帮助!
我想我在安装 Neo4j 的过程中遇到了问题,因为在我卸载并重新安装它之后,我的导入终于成功了。
我正在开始使用 neo4j,但是我在从 csv 文件导入一些数据时遇到了问题。
我的代码如下:
CREATE CONSTRAINT ON (w:word) ASSERT w.stem IS UNIQUE
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:/home/quentin/.pfe/short_abstracts_fr0.csv" AS row
MATCH (a:article {title: row.article})
MATCH (w:word {stem: row.word})
MERGE (a)-[r:contains {count:row.count}]->(w)
这不会造成任何错误,但不会导入任何内容。我的 csv 文件位置很好,它的内容如下:
article,word,count
Aux_couleurs_du_Moyen_Âge,accompagné,1
Aux_couleurs_du_Moyen_Âge,auss,1
Aux_couleurs_du_Moyen_Âge,banquet,1
我已经使用 ::
导入了 2 个类似的 csv 文件 USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:/home/quentin/.pfe/category_relations_csv" AS row
MATCH (a:article {title: row.article})
MATCH (cat:category {label: row.categorie})
MERGE (a)-[:is_under]->(cat)
和
MATCH (c0:category {label: row.cat0})
MATCH (c1:category {label: row.cat1})
MERGE (c0)-[r:relates {type:row.link}]->(c1)"
如果有人知道它有什么问题。
您确认它匹配 a
和 w
了吗?如果未找到 a
和 w
之一或两者,则您的 MERGE
语句将不会创建任何内容。尝试输出结果,而不是尝试 MERGE
。
例如
LOAD CSV WITH HEADERS FROM "file:/home/quentin/.pfe/short_abstracts_fr0.csv" AS row
MATCH (a:article {title: row.article}), (w:word {stem: row.word})
RETURN a.article, w.word
如果您知道它们还不存在,那么您可以省略 MATCH
子句。
例如
CREATE CONSTRAINT ON (w:word) ASSERT w.stem IS UNIQUE
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:/home/quentin/.pfe/short_abstracts_fr0.csv" AS row
MERGE (a:article {title: row.article})-[r:contains {count:row.count}]->(w:word {stem: row.word})
同样,如果您希望模式的一端已经存在,则只包含一个 MATCH
子句。从您的查询和添加的约束来看,您可能希望创建带有 :Word
标签的节点。如果是这样,您的查询可能如下所示。
CREATE CONSTRAINT ON (w:word) ASSERT w.stem IS UNIQUE
USING PERIODIC COMMIT 1000
LOAD CSV WITH HEADERS FROM "file:/home/quentin/.pfe/short_abstracts_fr0.csv" AS row
MATCH (a:article {title: row.article})
MERGE (a)-[r:contains {count:row.count}]->(w:word {stem: row.word})
但是,最好先创建节点,然后再创建关系模式。希望这对您有所帮助!
我想我在安装 Neo4j 的过程中遇到了问题,因为在我卸载并重新安装它之后,我的导入终于成功了。