gpt4 book ai didi

neo4j - 匹配多个独立(或相关)路径

转载 作者:行者123 更新时间:2023-12-02 21:19:18 25 4
gpt4 key购买 nike

我正在研究人员和组织的层次结构,并试图找到他们在哪里/是否会面并共享管理。假设“Bob”和“Susan”在不同的分支机构工作。我想在公司中显示他们的两种报告关系(如果/当它们重叠时)。

此查询当前运行良好,并返回单个路径:

MATCH path=(p:Person {name: "Bob"})-[:reports_to*]->(o:Organization {code: "TopOfCompany"})
RETURN path;

这个查询也很好用,并返回单个路径:

MATCH path2=(p:Person {name: "Susan"})-[:reports_to*]->(o2:Organization {code: "TopOfCompany"})
RETURN path2;

此查询(在一个操作中执行这两个操作)根本不返回任何内容:

MATCH path=(p:Person {name: "Bob"})-[:reports_to*]->(o:Organization {code: "TopOfCompany"}),
path2=(p:Person {name: "Susan"})-[:reports_to*]->(o2:Organization {code: "TopOfCompany"})
RETURN path,path2;

如果我在第二个路径查询中重用第一个 o 绑定(bind),情况也是如此。

我知道我可以重新表述它以找到两个人在中间相遇的位置,如下所示:

MATCH path=(p1:Person {name: "Bob"})-[:reports_to*]->(o:Organization)<-[:reports_to*]-(p2:Person {name: "Susan"})
RETURN path;

确实,该查询运行良好 - 但如果它们不在中间相遇,则该查询将失败,因为中间的 o:Organization 不存在。

我可能还有其他等效的方法可以重新制定以获得正确的结果 - 但我的问题的核心是,是否不可能在一个查询中识别两个不同的独立路径?这将在它们不满足、我匹配的目标(“TopOfCompany”)不同或者我只是想比较一系列路径的情况下非常有用。

哦,我在 2004 年 2 月 2 日使用服务器。两条路径查询成功,但结果为空,JSON版本的结果为:

{"columns":["path","path2"],"data":[],"stats":{"contains_updates":false,"nodes_created":0,"nodes_deleted":0,"properties_set":0,"relationships_created":0,"relationship_deleted":0,"labels_added":0,"labels_removed":0,"indexes_added":0,"indexes_removed":0,"constraints_added":0,"constraints_removed":0}}

最佳答案

您的此查询对 BobSusan 节点使用相同的变量 (p),这可能解释了为什么它不按您的预期工作(单个节点的同一属性不能有 2 个不同的值):

MATCH path=(p:Person {name: "Bob"})-[:reports_to*]->(o:Organization {code: "TopOfCompany"}),
path2=(p:Person {name: "Susan"})-[:reports_to*]->(o2:Organization {code: "TopOfCompany"})
RETURN path,path2;

您可以使用不同的变量,或者完全删除节点变量(因为您不在任何地方使用它们)——如下所示:

MATCH path=(:Person {name: "Bob"})-[:reports_to*]->(:Organization {code: "TopOfCompany"}),
path2=(:Person {name: "Susan"})-[:reports_to*]->(:Organization {code: "TopOfCompany"})
RETURN path,path2;

关于neo4j - 匹配多个独立(或相关)路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28613474/

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