2017-04-06 8 views
0

Ich habe zwei CSV-Dateien, eine mit zwei Spalten in source_node, Ziel-Knoten-Format und zweite mit einer Liste von Knoten. Jetzt versuche ich, mitAusschließen einige Knoten beim Erstellen von Grafik aus CSV

load csv with headers from "file:///C:/Users/neo4j_workspace/new_graph_db/import/sample_edges.csv" as table 
merge (a:Node{name:table.destination_node }) 
with table, a 
merge (b:Node{name:table.source_node}) 
with a, b 
merge (a)-[:relates]->(b) 

Aber ich mag eine Grafik mit der ersten Datei zu erstellen, die die Knoten sowie Beziehungen zwischen den Knoten zu schaffen, in dem sowohl die Ursprungs- und Zielknoten in der Spalte des zweiten csv ist. Ich habe versucht, mit WHERE als

load csv with headers from "file:///C:/Users/neo4j_workspace/new_graph_db/import/sample_list.csv" as jobs_table 
with list 
load csv with headers from "file:///C:/Users/neo4j_workspace/new_graph_db/import/sample_edges.csv" as table 
with table, list 
merge(a:Node{name:table.destination_node }) 
with table, list, a 
merge (b:Node{name:table.source_node}) 
with list, a, b 
merge(a)-[:relates]->(b) 
where (a and b in list.nodenames) 

aber ich kam zu wissen, dass, wo nicht mit verschmelzen verwendet werden kann. Ich weiß das über CASE, aber ich kann damit keine richtige Abfrage erstellen. Meine db ist zu Beginn leer.

Antwort

1

Mit dem Ansatz, den Sie versuchen, erstellt die Abfrage ein kartesisches Produkt zwischen allen Zeilen Ihrer ersten CSV und allen Zeilen Ihrer zweiten CSV. Dieser Ansatz wird schlecht funktionieren.

Stattdessen würde ich empfehlen, jede Datei einzeln zu verarbeiten, zuerst indem Sie alle Knoten aus der ersten CSV erstellen und dann (nach Hinzufügen eines Indexes auf: Node (Name) falls nicht vorhanden) die zweite CSV verarbeiten , passend zu jedem Knoten in der Zeile nach Namen und Zusammenführung der Beziehung.

+0

Danke. Ich habe das Gleiche gemacht, ich habe es nachher bemerkt. – Sim101011

Verwandte Themen