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
neo4j cypher避免路径重复_Neo4j_Cypher - Fatal编程技术网

neo4j cypher避免路径重复

neo4j cypher避免路径重复,neo4j,cypher,Neo4j,Cypher,我有以下查询,我希望避免路径的重复(simetric) 我尝试了DISTINCT关键字,但得到了语法错误 我在寻找类似(但也失败了)的东西: 您可以只添加一个简单的测试,以确保一个大于另一个,这样您就不会多次收到相同的配对 MATCH (a:PERSON)-[:LIKES]->(b:PERSON)-[:LIKES]->(a) where id(b) > id(a) return a,b 我不明白,a b如何避免得到多个相同的配对。不是,而是大于或小于。您正在匹配a-[:LI

我有以下查询,我希望避免路径的重复(simetric)

我尝试了
DISTINCT
关键字,但得到了语法错误

我在寻找类似(但也失败了)的东西:


您可以只添加一个简单的测试,以确保一个大于另一个,这样您就不会多次收到相同的配对

MATCH (a:PERSON)-[:LIKES]->(b:PERSON)-[:LIKES]->(a) 
where id(b) > id(a)
return a,b
我不明白,a b如何避免得到多个相同的配对。不是
,而是
大于
小于
。您正在匹配
a-[:LIKES]>b
,并且相互匹配
b-[:LIKES->a
。因此,当您获得其中一个闭环匹配时,它会向前和向后工作。您返回的是一对节点,因此对于每两个人,他们将生成两个匹配,每个位置有一个人。使用比较运算符的原则是只返回其中一个匹配。因为颂歌总是存在的,唯一的一对总是比另一对大,每对只返回一次而不是两次。
MATCH path=(a:PERSON)-[:LIKES]->(b:PERSON)-[:LIKES]->(a) 
where DISTINCT(path)
return a,b
MATCH (a:PERSON)-[:LIKES]->(b:PERSON)-[:LIKES]->(a) 
where id(b) > id(a)
return a,b