Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Neo4j 通过共享子节点查找最相似的节点_Neo4j_Cypher - Fatal编程技术网

Neo4j 通过共享子节点查找最相似的节点

Neo4j 通过共享子节点查找最相似的节点,neo4j,cypher,Neo4j,Cypher,我试图通过它们共享的子节点找到与另一个节点最相似的节点,然后列出它们共享的节点 例如,我有: 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的子节点最相似

我试图通过它们共享的子节点找到与另一个节点最相似的节点,然后列出它们共享的节点

例如,我有:

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
match(n1:Node{name:“some name”})-[:HAS]->(i)您可以尝试使用将类似节点存储到集合中,然后返回它:

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

match(n1:Node{name:“some name”})-[:HAS]->(i)欢迎您!谢谢你接受了答案@钢球