图谱如图所示,A和B分别是一个图谱里的两个主体节点,其他都是附属于它们的节点。 现在的任务是得到如上所示圈内的部分图谱,也就是只把A这个“一级节点”和附属于A的“二级三级节点们”提取出来。 我的查询如下:
match(n1:label1{id:‘1’})-\[r1\]-(m1)
match(n2:label2{id:‘24’})-\[r2\]-(m2)
match(n3:label2{id:‘25’})-\[r3\]-(m3)
RETURN n1,n2,n3,m1,m2,m3
这样虽然能得到该图谱,但一旦附属节点很多,得出来的数据库会很慢很慢甚至卡住。
原因可以从table看到,每个节点都被重复了很多次,50个节点可能变成了3000个,但在graph那里部分图谱的显示是没有问题的。
我尝试了return distinct m1是可以的删除重复节点的,但return distinct m1,m2,m3不行,或with [m1,m2,m3] as m,return m也不行。
请问怎么能删除多次匹配导致的那些重复的节点呢?或者是不是可以修改匹配语句?或者说有什么其他办法可以用于提取部分图谱这个目标呢?
谢谢!