我试图通过它们共享的子节点找到一个与另一个节点最相似的节点,然后列出它们共享的那些节点。
例如我有:
N1-[has]->A
N1-[has]->B
N1-[has]->C
N1-[has]->D
N2-[has]->A
N2-[has]->B
N2-[has]->E
N2-[has]->F
N3-[has]->A
N3-[has]->B
N3-[has]->C
N3-[has]->G
那么我想通过它的子节点到N1来检查哪个节点最相似。 它应该是N3,因为它们共享3个子节点
现在我可以使用
找到它所在的节点match (n1:Node {name: "some name"})-[:HAS]->(i)<-[:HAS]-(n2:Node)
with n2.name as n, count(*) as c
return n order by c desc limit 1
但我需要他们共享的节点列表,我已经坐了很长时间了,并且无法理解它。
答案 0 :(得分:1)
您可以尝试使用collect()将类似节点存储到集合中,然后将其返回:
match (n1:Node {name: "some name"})-[:HAS]->(i)<-[:HAS]-(n2:Node)
with n2.name as n, collect(i) as similarNodes, count(*) as c
return n, similarNodes
order by c desc limit 1