gpt4 book ai didi

neo4j - Neo4j 的 'Variable length relationships' 是什么意思?

转载 作者:行者123 更新时间:2023-12-05 02:16:51 28 4
gpt4 key购买 nike

在页面中 Neo4j Cypher 3.3.1 MATCH

“可变长度关系”部分让我感到困惑。

例子:

MATCH (martin { name: '查理辛' })-[:ACTED_IN*1..3]-(movie:Movie)
返回电影标题

返回 3 行并重复“The American President”。

如果我将 3 更改为 2,则仅返回一行“Wall Street”。这是为什么?以及该部分中的minHopsmaxHops 是什么意思?

最佳答案

这与模式中允许遍历的关系数量有关。

例如,对于社交网络图,这表示与您所有 friend 的匹配:

MATCH (me:Person{id:123})-[:FRIEND]-(friend)

这代表 friend 的 friend :

MATCH (me:Person{id:123})-[:FRIEND]-()-[:FRIEND]-(friendOfFriend)

这是同一件事,但具有可变长度的关系,表明您想遍历 :FRIEND 关系两次。

MATCH (me:Person{id:123})-[:FRIEND*2]-(friendOfFriend)

我们可以设置最小和最大跳数:

MATCH (me:Person{id:123})-[:FRIEND*1..3]-(friend)

这将返回遍历至少 1 个 :FRIEND 关系,最多 3 个 :FRIEND 关系可以到达的所有节点。

如果我们将 0 设置为下限,则起始节点 me 也将包含在 friend 的结果中

MATCH (me:Person{id:123})-[:FRIEND*0..3]-(friend)

对于文档中的示例,如果我们更改该查询以返回路径而不仅仅是结束节点:

MATCH path = (charlie:Person { name: 'Charlie Sheen' })-[:ACTED_IN*1..3]-(movie:Movie)
RETURN path

您会看到有一条长度为 1 的路径终止于 Wall Street 的节点,还有两条长度为 3 的不同路径终止于 The American President。

关于neo4j - Neo4j 的 'Variable length relationships' 是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48959092/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com