如何在 Neo4j 中隐藏节点之间不需要的关系

Posted

技术标签:

【中文标题】如何在 Neo4j 中隐藏节点之间不需要的关系【英文标题】:How to hide unwanted relationships between nodes in Neo4j 【发布时间】:2016-10-02 21:14:20 【问题描述】:

我是 Neo4j 的新手,我有一个奇怪的要求。

我有一些节点

CREATE (a:node title:1)
CREATE (b:node title:2)
CREATE (c:node title:3)
CREATE (d:node title:4)

以及它们之间的多重关系:

CREATE (a)-[:RELATESjump:[1]]->(b)
CREATE (b)-[:RELATESjump:[1]]->(c)
CREATE (c)-[:RELATESjump:[1]]->(d)
CREATE (a)-[:RELATESjump:[2]]->(c)
CREATE (c)-[:RELATESjump:[2]]->(d)
CREATE (d)-[:RELATESjump:[1]]->(b)
CREATE (a)-[:RELATESjump:[3]]->(d)
CREATE (d)-[:RELATESjump:[3]]->(c)
CREATE (c)-[:RELATESjump:[3]]->(b)

图表和关系如下所示:

我想检查图表,以便只显示我感兴趣的那些关系。 现在当我做这样的事情时:MATCH (a)-[r]->(b) WHERE 1 IN r.jump RETURN a,b

我得到类似的东西:

有没有一种方法可以在显示图表时隐藏(而不是删除)不相关的关系?可能是这样的(在图像工具上编辑):

PS:让灰色变成白色。

【问题讨论】:

【参考方案1】:

在 neo4j 3.2.1 中,此功能已重新定位到左下角,齿轮图标下方:“连接结果节点”(默认选中,因此返回结果中包含的所有节点之间的关系)。

【讨论】:

谢谢,它有效!但我有一个问题,我如何“明确”要求显示关系?我有一个案例,我只想看一段关系,但它给了我所有的关系。例如: MATCH (p:Person)-[:belong]->(o:Organisation) RETURN p,o 编辑:找到它,必须打开“初始节点显示”选项,否则由于某种原因它不会显示。【参考方案2】:

默认情况下,Neo4j 浏览器使用“自动完成”功能来显示可视化中节点之间存在的所有关系。您可以通过切换 Neo4j 浏览器中的“自动完成”按钮来更改此设置:

这将从可视化中排除任何未在 Cypher 查询中明确返回的关系。

请注意,您需要明确返回您感兴趣的关系。因此您的查询变为:

MATCH (a)-[r]->(b) 
WHERE 1 IN r.jump 
RETURN a,r,b

【讨论】:

以上是关于如何在 Neo4j 中隐藏节点之间不需要的关系的主要内容,如果未能解决你的问题,请参考以下文章

尝试放松并在节点之间建立新的关系Neo4J C#Client

Neo4J与NeoModel:如何加速图形创建?

我如何在 Neo4j 图形数据库中检索关系

Neo4j 不对称关系

Neo4j查询优化系列如何快速统计节点的关系数

在将节点从 csv 创建到 neo4j 时创建关系