我有一个简单的网络,其中每个节点都有dui
和name
属性,每个关系都有year
和freq
(频率)属性。
例如,如果我希望为dui = 'D000003'
节点创建自我网络,我使用以下查询(请注意我使用WHERE
子句限制结果数量):
MATCH (n {dui:'D000003'})<-[r]->(m) WHERE r.year = 2005 AND r.freq > 20 RETURN n.dui, m.dui;
,相应的结果是:
+-----------------------+
| n.dui | m.dui |
+-----------------------+
| "D000003" | "D015995" |
| "D000003" | "D015169" |
| "D000003" | "D013552" |
| "D000003" | "D008460" |
| "D000003" | "D006801" |
| "D000003" | "D005516" |
| "D000003" | "D005506" |
| "D000003" | "D002418" |
| "D000003" | "D002417" |
| "D000003" | "D000818" |
+-----------------------+
现在我想知道如何获得m.dui
列下列出的节点之间的所有关系;换句话说,我希望为这些节点生成共现图。
答案 0 :(得分:0)
这应该有效:
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;
请注意,我将您的奇怪(并且,我相信,未记录的)<-[r]->
语法更改为-[r]-
,这意味着方向性无关紧要。