Py2neo中的逆标签

问题描述

我想知道如何在一种关系上制作反向标签。我知道在Neo4j中不建议具有双向关系。我想创建类似以下的内容

class Firewall { protected $logger; protected $filters; public function __construct(Logger $logger,Filter ...$filters) { $this->logger = $logger; $this->filters = $filters; } }

我想为诸如IsAbbreviatedAs之类的关系添加标签

解决方法

总是在相反的方向上创建一对关系是不好的习惯,因为这完全是不必要的-因此不必要地增加了数据模型和代码的复杂性,并使所需的数据存储量增加了一倍关系。

假设您只创建了一个方向为一个类型(例如IsExpandedTo)的关系:

CREATE (:Acronym {value: 'MIT'})-[:IsExpandedTo]->(:Term {value: 'Massachusetts Institute of Technology'})

然后,要扩展首字母缩写词,您可以执行以下操作:

MATCH (acronym:Acronym)-[:IsExpandedTo]->(term)
WHERE acronym.value = 'MIT'
RETURN term.value

而且,要获得首字母缩写(通过相反的方向),可以执行以下操作:

MATCH (acronym)-[:IsExpandedTo]->(term:Term)
WHERE term.value = 'Massachusetts Institute of Technology'
RETURN acronym.value