2016-03-31 1 views
0

Ich habe ein einfaches Netzwerk, in dem jeder Knoten dui und name Eigenschaft hat und jede Beziehung hat und freq (Frequenz) -Eigenschaft.Co-Vorkommen in Neo4j

Zum Beispiel, wenn ich für Knoten mit dui = 'D000003' Ego-Netzwerk erstellen möchten, verwende ich die folgende Abfrage (bitte beachten Sie, dass ich die Anzahl der Ergebnisse mit WHERE Klausel beschränken):

MATCH (n {dui:'D000003'})<-[r]->(m) WHERE r.year = 2005 AND r.freq > 20 RETURN n.dui, m.dui; 

und das entsprechende Ergebnis ist:

+-----------------------+ 
| n.dui  | m.dui  | 
+-----------------------+ 
| "D000003" | "D015995" | 
| "D000003" | "D015169" | 
| "D000003" | "D013552" | 
| "D000003" | "D008460" | 
| "D000003" | "D006801" | 
| "D000003" | "D005516" | 
| "D000003" | "D005506" | 
| "D000003" | "D002418" | 
| "D000003" | "D002417" | 
| "D000003" | "D000818" | 
+-----------------------+ 

Jetzt frage ich mich, wie alle Beziehungen zwischen den Knoten zu erhalten, die unter der m.dui Spalte aufgeführt sind; mit anderen Worten, ich möchte Kookkurrenzgraphen für diese Knoten erzeugen.

Antwort

0

sollte diese Arbeit:

MATCH (n { dui:'D000003' })-[r]-(m) 
WHERE r.year = 2005 AND r.freq > 20 
MATCH (n)-[rel]-(m) 
RETURN n.dui, m.dui, COLLECT(rel) AS rels; 

Beachten Sie, dass ich Ihre seltsam verändert (und, wie ich glaube, nicht dokumentierte) <-[r]-> Syntax -[r]-, was bedeutet, die Direktionalität keine Rolle spielt.

+0

Eigentlich funktioniert das, aber ich brauche alle möglichen Beziehungen zwischen Knoten, die unter der 'm.dui' Spalte aufgeführt sind. – Andrej