首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Neo4j -使用Cypher返回现有路径列表

Neo4j -使用Cypher返回现有路径列表
EN

Stack Overflow用户
提问于 2017-01-16 08:21:32
回答 1查看 338关注 0票数 0

假设我有以下图表:

忽略图的3->2和4->3之间的关系,使其保持树状结构。

注意:在我的例子中,这种类型的关系(4->3,3->4)不存在

是否可以使用Cypher返回图中所有现有路径的“列表”?

上图的示例:

结果:1-2,1-3,1-3-4

最好是深度优先的.

EN

回答 1

Stack Overflow用户

发布于 2017-01-16 12:27:45

这不是Cypher的主要用例,所以它的性能不会很好,但这是可能的。

示例数据集:

代码语言:javascript
复制
CREATE
  (n1:Node {name: 'n1'}),
  (n2:Node {name: 'n2'}),
  (n3:Node {name: 'n3'}),
  (n4:Node {name: 'n4'}),
  (n1)-[:REL]->(n2),
  (n1)-[:REL]->(n3),
  (n3)-[:REL]->(n4)

使用路径变量查询

代码语言:javascript
复制
MATCH p=(a)-[*]->(b) RETURN p

结果:

代码语言:javascript
复制
╒════════════════════════════════════════════╕
│p                                           │
╞════════════════════════════════════════════╡
│[{name: n1}, {}, {name: n2}]                │
├────────────────────────────────────────────┤
│[{name: n1}, {}, {name: n3}]                │
├────────────────────────────────────────────┤
│[{name: n3}, {}, {name: n4}]                │
├────────────────────────────────────────────┤
│[{name: n1}, {}, {name: n3}, {}, {name: n4}]│
└────────────────────────────────────────────┘

由于Cypher是一种声明性语言,因此没有任何选项可以强制执行广度/深度优先遍历。但是,为此目的,Neo4j提供了一个您可能认为有用的遍历框架

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41672064

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档