Ich möchte ein Diagramm aus einer CSV-Datei generieren. Die Zeilen sind die Eckpunkte und die Spalten die Attribute. Ich möchte die Kanten durch Ähnlichkeit auf den Scheitelpunkten (nicht notwendigerweise mit Gewichten) in einer Weise erzeugen, dass, wenn zwei Scheitelpunkte denselben Wert eines Attributs haben, eine Kante zwischen diesen beiden das gleiche Attribut mit dem Wert 1 oder wahr haben wird.Smart Weg, Kanten in Neo4J für große Graphen zu erzeugen
Die einfachste Chiffre-Abfrage, die mir einfällt, sieht etwas wie folgt aus:
Match (a:LABEL), (b:LABEL)
WHERE a.attr = b.attr
CREATE (a)-[r:SIMILAR {attr : 1}]->(b)
Die Grafik hat etwa 148.000 Knoten und die Java Heap Size
Option ist: dynamisch auf verfügbaren Systemressourcen basierend berechnet.
Die Abfrage, die ich gepostet habe, gibt eine mit einem Hinweis auf Java Heap Space oben.
Ein Problem, das mir einfällt, ist, dass ein riesiges kartesisches Produkt zuerst gebaut wird, um dann nach Übereinstimmungen zu suchen, um Kanten zu erzeugen. Gibt es einen klügeren, vielleicht einen konsekutiven Weg, das zu tun?
Perfekt, vielen Dank! Ich werde ein zweiteiliges Diagramm erstellen. Das wird die Dinge viel einfacher machen. – Wipster
@Wipster Vielen Dank für Ihre interessante Frage :) –