我从几个csv文件迭代上传节点和边,每个节点类型一个。加载节点工作得很好,但加载边并不总是有效。实际上,有些节点有数字作为标识符--如果是这样的话,所有这种类型的节点都有数字--但加载为字符串,因此创建边失败。手动创建一个边,添加用双引号包装标识符,效果很好。
Type PMID ArticleTitle AbstractText Date Pages
Article 25358116 Synthesis of... Abstract 2014-10-30
Article 25358093 Putting theory... In this study... 2014-10-30 e1003910
Type Name Year Month Volume Issue
Issue J. Med. Chem., 2014 2014 Oct
Issue PLoS Comput. Biol., 2014, 10, 10 2014 Oct 10 10
Issue PLoS ONE, 2014, 9, 10 2014 9 10
边缘:
Name PMID
J. Med. Chem., 2014 25358116
PLoS Comput. Biol., 2014, 10, 10 25358093
密码命令:
CREATE INDEX ON :Article(PMID);
LOAD CSV WITH HEADERS FROM 'article.nodes' as csvLine FIELDTERMINATOR '\t' CREATE (:Article { PMID: toInt(csvLine.PMID), Title: csvLine.ArticleTitle, Date: csvLine.Date, Pages: csvLine.Pages, AbstractText: csvLine.Abstract }) return count(*);
CREATE INDEX ON :Journal(Abbreviate);
CREATE INDEX ON :Issue(Name);
LOAD CSV WITH HEADERS FROM 'issue.nodes' as csvLine FIELDTERMINATOR '\t' CREATE (:Issue { Name: csvLine.Name, Volume: csvLine.Volume, Issue: csvLine.Issue, Year: csvLine.Year, Month: csvLine.Month}) return count(*);
LOAD CSV WITH HEADERS FROM 'article.edges' as csvLine FIELDTERMINATOR '\t' MATCH (src:Issue { Name: csvLine.Name }), (tgt:Article { PMID: toInt(csvLine.PMID) }) CREATE (src) -[:hasArticle]-> (tgt) return count(*);
您可以使用toInt(csvline.id)进行以下操作:
http://neo4j.com/docs/stable/query-functions-scalar.html#functions-toint
下面是我的密码 请告诉我,我应该如何从csv文件指定关系。
NEO4J2.1.7 试图通过我在CSV中收到的信息大量连接一堆节点,如下所示: PS:我尝试了上面的语法,也尝试了,都没有用(语法错误)
我尝试使用load CSV with headers命令将以下节点加载到Neo4j中: 我将Excel-Sheet保存为: 所以有6个节点(就像我有6行一样),但它们都没有任何属性 我已经尝试用不同的分隔符保存文件,或者手动添加引号。后者给出: PS:我在stackoverflow上阅读了关于这个主题的所有其他帖子,但没有一个能帮我解决这个问题 给予:
我每周在我的Neo4j数据库中导入CSV,90%的数据已经存在。是我的数据库更新过程。 我正在将数据与ids合并,我对这些设置了一个独特的约束来确保这一点。 从技术角度来看一切都很好。但从运营的角度来看,我有一些需求: 谢谢你的帮助!