如何在neo4j样本数据集的Neo4j图形电影数据库中找到id = 1100的Actor节点和id = 65731的Actor节点之间的某些连接?我已经尝试了很多,但到目前为止,我知道id 11oo是Arnold Schwarzenegger,id 65731是Sam Worthington。当我使用ACTS_In关系运行Cypher时,它一起显示没有电影。
为了找到我曾使用过Cypher的名字:
MATCH (a:Actor {id:"1100"}),(b:Actor {id:"65731"})
RETURN a.name, b.name
为了寻找关系,我使用了这个Cypher:
Match(a:Actor{name:"Arnold Schwarzenegger"})-[:ACTS_IN]->()<-[:ACTS_IN]-(b:Actor{name:"Sam Worthington"})
using index a:Actor(name)
using index b:Actor(name)
return count(*)
我正在寻找任何类型的连接。不仅是同一部电影。
答案 0 :(得分:1)
通常,要查找任意2个节点之间的路径,您可以执行variable-length relationship查询。
例如:
MATCH path=(a:Actor{name:"Arnold Schwarzenegger"})-[*]-(b:Actor{name:"Sam Worthington"})
RETURN path;
但是,请注意,无限长的可变长度关系查询可能需要很长时间才能完成(或者似乎永远不会完成),即使数据库相对较小也是如此。最佳实践是在查询的深度上设置合理的上限。例如,要搜索最多5的路径深度
MATCH path=(a:Actor{name:"Arnold Schwarzenegger"})-[*..5]-(b:Actor{name:"Sam Worthington"})
RETURN path;