【问题标题】:Cypher query gives unnecessary relationshipsCypher 查询提供了不必要的关系
【发布时间】:2017-08-18 14:58:43
【问题描述】:

我试图在密码查询网络浏览器中仅显示一个相关关系,但它显示了节点之间的所有关系。我正在运行以下查询:

MATCH (emp:Employee)-[e:EMPLOYED {dateendrole:"Current"}]->(c:Company {companyname:"xyza"})
MATCH (emp)-[ea:EDU_ASSOCIATED]->(ec:Company)
MATCH (another_emp:Employee)-[ea1:EDU_ASSOCIATED {overlapyearstart:ea.overlapyearstart, overlapyearend:ea.overlapyearend}]->(:Company {comp_id:ec.companyId})
RETURN emp, e, c, ea, ec, another_emp, ea1,  LIMIT 1;

我在上述查询中的目的是找到另一家公司的相关员工,其中一名员工目前在一家公司工作,并且曾经或曾经受雇于另一家公司。 例如,查找某个公司的关联员工,该员工之前曾在该公司工作,目前在xyza 公司工作。

这里,员工和公司是节点。它具有关联关系,其中包含它们的重叠年份作为关系的属性。例如(emp)-[:Associated{overlapyearstart:x, overlapyearend:y}]->(company)

如果该员工曾与某家公司的另一名员工共事,则重叠年限相同。

以上查询在neo4j 的Web 界面中给出了以下输出。

在图像中,“先生”(节点不显示专有名称)是员工。 “美国”是当前雇主。 “未知”是他/她过去工作的公司,“医生”是“未知”公司“先生”的关联员工。

我有两个问题:

  1. 从“医生”到“未知”,为什么会显示所有的关系?我怎样才能只显示一个相关的关系?目前它显示所有“医生”与“未知”的关系。

  2. 如何将“先生”改为“未知”?

【问题讨论】:

    标签: neo4j cypher


    【解决方案1】:

    我相信这些关系只存在于 Neo4j 浏览器的图形可视化模式中。如果您将可视化模式更改为“文本”、“表格”或“代码”,这些关系将不会显示。即:Graph 可视化模式正在尝试为您“完成”图表。

    要获得所需的结果,您应该转到 Neo4j 浏览器设置的 “图形可视化” 部分并取消选中选项 “连接结果节点”,如图所示下面:

    【讨论】:

    • 为什么图形可视化模式试图“完成”图形?为什么这是默认行为?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-08
    • 1970-01-01
    相关资源
    最近更新 更多