[英]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.