2014-09-02 90 views
0

我試圖將csv導入Neo4j。由於它由日誌條目組成,我想在後續時間創建相應的日誌時使用NEXT指針/關係連接節點。在Neo4j中創建後續節點(日期屬性)之間的關係

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) 

但是最後四行不起作用。我所嘗試的是將最早的條目'c'從比'a'更大的時間戳輸入'b'組中。有人可以幫我從這裏出去嗎?

回答

1

不知道我是否正確理解您的問題:您有一個csv文件,其中包含具有時間戳的日誌記錄。每行包含一條記錄。你想互連的事件,以形成一個基於時間戳的鏈表?

在這種情況下,我分裂過程分成兩個步驟:

  1. 使用LOAD CSV創建具有data屬性爲每個線
  2. 之後的節點連接使用例如條目像這樣的密碼聲明:

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)))) 
+0

謝謝你,斯蒂芬,這解決了我的問題。我可能不會繞過正確的學習Cypher ... – Damian 2014-09-03 05:47:35

相關問題