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-如何忽略同一节点多次出现的模式_Neo4j_Cypher - Fatal编程技术网

Neo4j-如何忽略同一节点多次出现的模式

Neo4j-如何忽略同一节点多次出现的模式,neo4j,cypher,Neo4j,Cypher,如何在查询最短路径时忽略同一节点多次出现的匹配模式,如附图中的纵向匹配。 A到C的最短路径给出 start a=node:node_auto_index(point='A'),c=node:node_auto_index(point='c') match p=a-[r:CONNECTS*]->c return p; 1. A-> C 2. A -> B -> C -> A -> C 3. A -> B -> C 4. A -> C -&g

如何在查询最短路径时忽略同一节点多次出现的匹配模式,如附图中的纵向匹配。

A到C的最短路径给出

start a=node:node_auto_index(point='A'),c=node:node_auto_index(point='c') match p=a-[r:CONNECTS*]->c return p;

1. A-> C
2. A -> B -> C -> A -> C
3. A -> B -> C
4. A -> C -> A -> C
5. A -> B -> A -> C
6. A -> C -> B -> A -> B -> C

9个模式中有更多个,但在某些模式中,相同节点或起始和结束节点多次出现,这类似于不相关的输出,因此我如何识别和忽略路径中有任何节点多次出现的模式

您没有使用最短路径。正确的查询是:

start a=node:node_auto_index(point='A'),
      c=node:node_auto_index(point='c') 
match p=shortestPath((a)-[r:CONNECTS*]->(c)) 
return p;

或者
allshortestpath

找到了上述情况的解决方案

START a=node:node_auto_index(point='a'),
c=node:node_auto_index(point='c')
MATCH path= a-[r:CONNECTS*]->c
WHERE ALL(n in nodes(path) where 1=length(filter(m in nodes(path) : m=n))) 
RETURN path; 
现在,其结果仅为预期的有效路径:-)


您正在使用哪个版本的Neo4j?@jjaderberg版本1.9.5对于上述情况,
shortestpath
allshortestpath
都返回直接连接A->C,但我需要所有可能的有效连接,如A->B->C和A->C
1. A -> B -> C
2. A -> C