【发布时间】:2015-05-18 16:56:15
【问题描述】:
我在从 csv 导入时遇到问题。
我在 shell 中运行以下内容,而最后一部分 (MERGE (e1)-[:NEXT]->(hit)))) 从未发生过。
有点郁闷……
每个会话都有 x 次点击。 我想找到插入会话的最后一次命中,并通过 NEXT 关系将其与新命中连接
PSV 样本:
Session_id|日期时间 xxx|2015-01-01T01:00:00 xxx|2015-02-02T09:00:00 年年|2015-03-03T06:00:44
代码:
USING PERIODIC COMMIT 100
LOAD CSV WITH HEADERS FROM 'file:///home/xxx.csv' AS line FIELDTERMINATOR '|'
MERGE (session :Session { session_id:line.session_id })
MERGE (hit:Hit{date:line.date_time})
//........更多合并......
//关系
CREATE (hit)-[:IN_SESSION]->(session)
CREATE ....//more relations
WITH session
MATCH (prev_hit:Hit)-[:IN_SESSION]->(session)
WITH prev_hit ORDER BY prev_hit.date_time DESC LIMIT 2
WITH collect(prev_hit) as entries
FOREACH(i in RANGE(0, length(entries)-1) |
FOREACH(e1 in [entries[i]] |
MERGE (e1)-[:NEXT]->(hit)))
【问题讨论】:
-
您在 CREATE 语句中缺少 :Hit 标签
-
对不起,我只是没有把它贴在这里。这是“合并...”的地方
-
然后请粘贴您的完整加载 csv,以便我们更好地帮助您
-
感谢 Christophe,我在回家的路上用手机编辑了这个问题……如果这还不够好,我稍后会发布完整的代码。
-
您的意思是脚本完成但
MERGE从未运行,还是脚本挂起?你用的是什么版本的 Neo4j?