我在使用Neo4j时遇到了问题,如果你能帮忙,我会非常感谢你!
我的工作是这样的。我必须研究和评估几个图形数据库,为此,我必须使用基准测试。我使用的基准是社交网络基准(SNB)
我根据所选的设置生成具有不同设置的文件。类似的东西:forum_0.csv
这个.csv文件有一些标题,如下所示:id | title | creationDate | etc...
我的项目的下一步是将它们加载到Neo4j,构建一个数据库以使用某些查询来测试它们,此时我的问题就从这里开始。
我已经将一些文件加载到Neo4j,但是其他文件没有因为错误而加载,我不明白为什么。
我正在使用此代码加载这些文件。在这个例子中,我将forum.csv加载到Neo4j。
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS
FROM ".../forum_0.csv" AS csvLine
FIELDTERMINATOR "|"
CREATE (:FORUM_0 {id:csvLine.id, title:csvLine.title, creationDate:csvLine.creationDate})
使用此代码,此文件中的数据将正确加载到Neo4j。
但是使用此文件 - forum_containerOf_post_0.csv我无法使用此标头正确加载数据 - Forum.id | Post.id
。
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS
FROM ".../forum_containerOf_post_0.csv" AS csvLine
FIELDTERMINATOR "|"
CREATE (:FCOP_0 {Forum.id:csvLine.Forum.id, Post.id:csvLine.Post.id})
这里的问题是我无法在forum_containerOf_post_0.csv的加载过程中访问forum_0.csv的id。我如何访问该ID或其他财产?是否缺少一些Cypher代码? 这个过程有什么问题吗?在这里有人可以使用 - SNB和Neo4j吗?
这里有人帮我解决这个问题吗?
我试图解释我的问题,但如果您对我的问题有疑问,请随时提问。
感谢您的时间
答案 0 :(得分:0)
问题在于第二个文件中的标题。如果要在标题列名称中嵌入句点.
,则需要在load csv语句中引用列时返回列。
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS
FROM ".../forum_containerOf_post_0.csv" AS csvLine
FIELDTERMINATOR "|"
CREATE (:FCOP_0 {Forum.id:csvLine.`Forum.id`, Post.id:csvLine.`Post.id`})
答案 1 :(得分:0)
是的,你的答案是正确的,但稍作修正
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS
FROM ".../forum_containerOf_post_0.csv" AS csvLine
FIELDTERMINATOR "|"
CREATE (:FCOP_0 {`Forum.id`:csvLine.Forum.id, `Post.id`:csvLine.Post.id})
但我发现了其他问题。这创建了FCOP_0节点标签,但没有forum_containerOf_post_0.csv具有的属性。这两个属性是Forum.id和Post.id,但是在这个过程中,属性不会加载到相应的节点......它在Neo4j中创建了FCOP_O节点标签,但是它们的节点没有属性,这两个属性。 / p> 你能帮帮我吗?