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_Spring Data Neo4j - Fatal编程技术网

Neo4J-Cypher中的节点排序

Neo4J-Cypher中的节点排序,neo4j,cypher,spring-data-neo4j,Neo4j,Cypher,Spring Data Neo4j,这是我问题的后续行动。我在那里接受了答案,但后来意识到我的用例更复杂。下面是我正在处理的一张图,表中显示了所需的节点顺序。显然,我应该按索引进行排序,但是对于具有相同索引的节点,它们之间的关系需要被视为图中的节点S和A。不允许循环 我怎样才能做到这一点? 多亏了你,下面的内容似乎可以完成这项工作。我不熟悉Cypher和Neo4J,因此,欢迎您提供其他答案,如果在某些情况下可能不起作用,还可以对以下内容发表评论 MATCH p = allShortestPaths((a:App)-[:DEPEND

这是我问题的后续行动。我在那里接受了答案,但后来意识到我的用例更复杂。下面是我正在处理的一张图,表中显示了所需的节点顺序。显然,我应该按索引进行排序,但是对于具有相同索引的节点,它们之间的关系需要被视为图中的节点S和A。不允许循环

我怎样才能做到这一点?
多亏了你,下面的内容似乎可以完成这项工作。我不熟悉Cypher和Neo4J,因此,欢迎您提供其他答案,如果在某些情况下可能不起作用,还可以对以下内容发表评论

MATCH p = allShortestPaths((a:App)-[:DEPENDS_ON*0..10]->(b:App))
WHERE a <> b
WITH b.name as bn, count(p) AS c
WITH COLLECT({name:bn, count:c}) AS paths
MATCH (a:App) WHERE NOT ()-[:DEPENDS_ON]->(a)
WITH paths + COLLECT({name:a.name, count:0}) AS allPaths
UNWIND allPaths AS path
WITH path.name AS name, path.count AS count
RETURN name, count
ORDER BY count DESC

根据你的想象,S的指数是2,而不是1。另外,你认为需要考虑它们之间的关系是什么意思?以什么方式考虑?@cybersam你是对的,S的指数是2。我所说的关系需要考虑的是,如果它们具有相同的独立性,但一方对另一方有依赖性,那么依赖的一方应该排名较低。
╒═════════╤═══════╕
│"name"   │"count"│
╞═════════╪═══════╡
│"C"      │4      │
├─────────┼───────┤
│"S"      │3      │
├─────────┼───────┤
│"A"      │1      │
├─────────┼───────┤
│"GW"     │0      │
├─────────┼───────┤
│"GC"     │0      │
└─────────┴───────┘