You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Cypher查询获取《Cloud Atlas》两跳范围内的演员与电影

Cypher 查询问题排查与修正方案

原有查询的错误点梳理

  • 第一个查询问题:
    • 节点变量名不能包含空格,(Cloud Atlas {name:"Cloud Atlas"}) 属于语法错误
    • 未指定电影节点标签 :Movie,匹配时会遍历所有类型节点,性能极低
    • 电影节点的标识属性通常为 title 而非 name,属性匹配错误
    • 返回的节点未做类型区分,所以无法分离演员和对应的电影信息
  • 第二个查询报错核心原因:
    • MATCH 子句语法错误,不能用逗号分隔两个节点后直接关联关系,Cypher 无法识别这种非链式的路径匹配规则
    • 未明确路径的结构逻辑,2跳路径从《云图》出发的标准结构是 云图电影 <- 参演关系 - 演员 - 参演关系 -> 其他电影

可直接运行的正确查询

要获取所有和《云图》演员共同出演过的其他电影,以及对应的演员名称,使用以下语句即可:

MATCH (:Movie {title: "Cloud Atlas"})<-[:ACTED_IN]-(people:Person)-[:ACTED_IN]->(m:Movie)
RETURN DISTINCT people.name AS 演员名称, m.title AS 关联电影名称

如果确实需要使用可变长度路径的写法(兼容更复杂的多跳场景),可以用以下调整后的版本:

MATCH p = (:Movie {title: "Cloud Atlas"})-[*2]-(m:Movie)
WHERE ALL(r IN relationships(p) WHERE type(r) = 'ACTED_IN')
RETURN DISTINCT nodes(p)[1].name AS 演员名称, m.title AS 关联电影名称

补充说明

如果你的图数据库里参演关系的类型不是ACTED_IN,替换成你实际使用的关系类型即可正常返回结果。

内容的提问来源于stack exchange,提问作者Alaina Sand

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 12:06:03