[英]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的过程中遇到问题,因为在卸载并重新安装它之后,导入终于可以了。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.