2016-09-29 6 views
0

Ich versuche, eine einzelne CSV in eine Neo4j DB zu laden. Ich habe followed this guideline aber kann immer noch nicht verstehen, warum funktioniert nicht für mich.Erstellen von Beziehung in Neo4j von einer einzigen CSV-Datei

Ich kann die Knoten korrekt erstellen (ihre Attribute sind alle Spalten außer einer) und ich möchte eine Beziehung zwischen allen Knoten mit dem einzigen verbleibenden Attribut erstellen, das nicht zum Knoten hinzugefügt wurde.

Meine Daten in file.csv wie folgt aussieht:

Säule, instaGramId, imageDateCreated, imageTagCount, imagefilter, googleLabel_list 0,1165524631240624607_638926073,1453161384,7, Normal, "[Cartoon, Comics, Kunstwerk]"
...

ich folgende Schritte:

Schritt 1: Erstellen Knotendiese korrekt arbeitet

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///file.csv" AS row 
CREATE (:Post {instaGramId: row.instaGramId, 
    imageDateCreated: toInt(row.imageDateCreated), 
    imageTagCount: row.imageTagCount, 
    imageFilter: row.imageFilter}); 

Nur linke Attribut ist googleLabel_list die eine in einem anderen Knoten sein muss

Schritt 2: Erstellen eines IndexDiese funktioniert auch richtig, ich denke,

CREATE INDEX ON :Post(instaGramId); 

Schritt 3: Erstellen von Beziehungendies funktioniert nicht richtig wohl nie etwas passen

USING PERIODIC COMMIT 
LOAD CSV WITH HEADERS FROM "file:///file.csv" AS row 
MATCH (post:Post {id: row.instaGramId}) 
MATCH (objects:Post {id: row.googleLabel_list}) 
MERGE (post)-[:CONTAINS_OBJECTS]->(objects); 

Antwort

1

Die folgende Klausel (und daher keine Beziehungen je geschaffen werden):

MATCH (objects:Post {id: row.googleLabel_list}) 

Dies ist weil Ihre vorhandenen POST Knoten haben id Werte (zB "1165524631240624607_638926073" - die von row.instaGramId kommen), die wahrscheinlich nichts wie IhreaussehenWerte (z. B. "[Cartoon, Comics, Artwork]").

+0

'MATCH (Post: Post {id: row.instaGramId})' wird auch nichts entsprechen, da die Eigenschaft 'instaGramId' heißt, nicht' id'. –

+0

Vielen Dank für Ihre freundlichen Antworten. Ich habe 'id' für' instaGramId' geändert, aber nichts passt noch. Um eine Beziehung zwischen den Spalten des gleichen csv-Datasets zu erstellen, haben sie in den Beispielen Folgendes gemacht: 'PERIODIC COMMIT 'VERWENDEN' ' CSV MIT HEADERS LADEN VON "file: employees.csv" AS row' 'MATCH (Mitarbeiter: Mitarbeiter {employeeID: row.EmployeeID}) ' ' MATCH (Manager: Mitarbeiter {employeeID: row.ReportsTo}) ' ' MERGE (Mitarbeiter) - [: REPORTS_TO] -> (Manager); ' – EnriqueH

+0

Vielleicht. .. Muss ich neue Knoten aus den 'googleLabel_list' Attributen erstellen? – EnriqueH

Verwandte Themen