在Neo4j中创建后续节点(日期属性)之间的关系

时间:2014-09-02 20:16:43

标签: neo4j cypher nosql

我正在努力让一个csv进入Neo4j。由于它包含日志条目,我想在后续时间创建相应的日志时,用NEXT指针/关系连接节点。

LOAD CSV WITH HEADERS FROM 'http://localhost/Export.csv' AS line
CREATE (:Entry { date: line[0], ...})

MATCH (n)
RETURN n
ORDER BY n:date


MATCH (a:Entry),(b:Entry),(c:Entry)
WITH p AS min(b:date) 
WHERE a:date < b:date AND c.date = p
CREATE (a)-[r:NEXT]->(c)

但最后四行不起作用。我尝试的是从时间戳大于'a'的条目'b'中获取最早的条目'c'。任何人都可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

不确定我是否正确理解了您的问题:您有一个包含带时间戳的日志记录的csv文件。每行包含一条记录。您想要将事件互连以形成基于时间戳的链接列表?

在这种情况下,我将该过程分为两个步骤:

  1. 使用LOAD CSV为每行创建一个data属性的节点
  2. 然后使用例如连接条目像这样的密码声明:
  3. MATCH (e:Entry) 
    WITH e ORDER BY e.date DESC
    WITH collect(e) as entries 
    FOREACH(i in RANGE(0, length(entries)-2) | 
      FOREACH(e1 in [entries[i]] | 
        FOREACH(e2 in [entries[i+1]] |  
           MERGE (e1)-[:NEXT]->(e2))))