2017-07-27 62 views
1

我對Neo4j非常新,但它讓我興奮。但是,我試圖模擬CSV文件形式的以下數據時遇到困難。Neo4j數據建模問題

ID  Document Word 
123  Book  Potter,Love,Bond 
124  Book  Love,Game 
134  Pad   Game,Hate 
111  BB   Hate,Level,Awesome 
109  Feat  Awesome 

理想情況下我期待具有ID的每個節點的獨特元素,文檔列作爲節點屬性中的一個和所有的話連接到每個ID與關係HAS單個節點。所以,愛情會涉及到兩個標識123和124

對暗號查詢任何幫助將是巨大的

回答

2

首先創建文檔節點和字節點上的約束

CREATE CONSTRAINT ON (d:Document) ASSERT d.id IS UNIQUE 

CREATE CONSTRAINT ON (w:Word) ASSERT d.name IS UNIQUE 

即時猜測你是使用LOAD CSV

LOAD CSV WITH HEADERS FROM "url" as row 
MERGE (d:Document{id:row.ID}) 
ON CREATE SET d.type = row.Document 
with d,split(row.Word,",") as words 
UNWIND words as word  
MERGE (w:Word{name:word}) 
MERGE (d)-[:HAS]->(w) 
+0

感謝您的回覆。只是一些事情,那一定是錯別字。但我無法解決由於它們導致的錯誤 1.第二個CREATE約束語句似乎需要w.name而不是d.name 2. MERGE(d:Document {row.ID})語句給出我錯誤「沒有可行的替代輸入....」 看着下一個合併我用ID替換行。但是這又拋出了另一個錯誤,如下所示: 「未定義變量id」(第2行,第21列(偏移量:60)) 「MERGE(d:Document {d:id})」 任何幫助 謝謝 –

+0

編輯答案... cypher很好,只要取決於你的csv看起來像 –

+0

增加了另一個編輯...文件丟失id: –