Ich habe eine Node-Tabelle und eine Edge-Tabelle, die beide als CSV-Dateien zur Verfügung stehen. ich es geschafft, die Node Tabelle laden von:Wie Sie Eigenschaften mit NULL-Werten mit Neo4j MERGE einbinden
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///NodesETL.csv' AS line
CREATE (:InfoNodes {id: toString(line.id), description: toString(line.description)})
Diese Abfrage erstellt die InfoNodes mit den Feldwerten der CSV-Datei als Eigenschaften: InfoNodes was in Ordnung ist.
InfoNodes haben Beziehungen mit anderen InfoNodes, z. Diese Beziehungen bestehen zwischen Knoten mit demselben Label. Diese Beziehungen werden in einer Edge-Tabelle gespeichert, die als zusätzliche CSV-Datei verfügbar ist. Jede Zeile dieser Edge-Tabelle enthält idfrom- und idto-Felder, die die Beziehungen zwischen InfoNodes auf der Basis ihrer ID-Eigenschaft definieren. Die Edge-Tabelle enthält auch 3 zusätzliche Felder, die Eigenschaften der Beziehung darstellen. Die erste Eigenschaft ist immer eine Zeichenkette und niemals NULL, z. niemals eine leere Zeichenfolge. Die secondproperty und die dritte Eigenschaft, beide vom Typ string, können NULL-Werte wie "" haben. So können zweite Eigenschaft und/oder dritte Eigenschaft NULL-Werte enthalten. Ich versuche, diese Edge-Tabelle zu verwenden, die erstellen [: BEZIEHUNG {firstproperty :, secondproperty :, thirdproperty:}] Beziehungen zwischen (: InfoNodes) von:
USING PERIODIC COMMIT
LOAD CSV WITH HEADERS FROM 'file:///EdgesETL.csv' AS line
MATCH (from:InfoNodes{id: toString(line.idfrom)})
MATCH (to:InfoNodes{id: toString(line.idto)})
MERGE (from)-[:RELATION {firstproperty: toString(line.firstproperty), secondproperty: toString(line.secondproperty), thirdproperty: toString(line.thirdproperty)}]->(to)
Diese zweite Cypher Skript führt zu einem Fehler, wenn secondproperty und dritte Eigenschaft in der Edge-Tabelle enthalten NULL-Werte. Die Neo4j-Fehlermeldung lautet: Die Beziehung kann nicht mithilfe des Nulleigenschaftswerts für die zweite Eigenschaft zusammengeführt werden. Wenn ich aus dem zweiten Skript die secondproperty -Feld und secondproperty entfernen: Eigenschaft als die gleiche Art von Fehler auftritt thirtonproperty: Kann keine Beziehung mit Null-Eigenschaft Wert für thirdproperty Wenn ich secondproperty und thirdproperty Felder und Eigenschaften aus dem vorherigen Skript dann die [: RELATIONS] Beziehungen zwischen InfoNodes werden erstellt, einschließlich Felder der firstproperty-Tabelle, die als firstproperty gespeichert werden: Eigenschaft der Beziehung [: RELATION].
Frage: Wie kann das zweite Skript erweitert werden, um aus der Edge-Tabelle die zweite Eigenschaft und dritte Eigenschaft Felder in secondproperty zu laden: und thirdproperty: of [: RELATION] Beziehungen einschließlich NULL Werte?
Can't MERGE with null values; 'Cannot merge node using null property value' in neo4j beschreibt das gleiche Problem, aber beantwortet meine Frage im Falle mehrerer Felder/Eigenschaften mit NULL-Werten nicht.
Gibt es mehrere Beziehungen zwischen den gleichen Knoten, aber mit unterschiedlichen Werten für einige der Eigenschaften? Oder sind die (idfrom, idto) Paare alle einzigartig? –
: InfoNodes können eine oder mehrere Relationen zu anderen haben: InfoNodes, aber im Falle mehrerer Beziehungen hat jede Beziehung ein eigenes Label. Daher haben mehrere Beziehungen zwischen InfoNods ihre eigene eindeutige ID von/idto in der Edge-Tabelle mit ihren eigenen Beziehungseigenschaften als Felder. – Luc