Neo4j为什么不支持创建无向关系
发布于 5 年前 作者 anybody 4761 次浏览 来自 问答

无向关系应该是一种很常见的场景,Neo4j为什么不支持创建无向关系呢?并且也没集成自动创建反向关系的语法,为何这么设计呢?另外,尴尬的是,官方文档中介绍算法的时候,经常说支持有向关系、无向关系。。。既然没有无向关系,为何还要说支持无向关系呢?

5 回复

neo4j 官方给出的解释是,必须加方向,不能创建无指向的关系。 需要遍历无指向的关系 语句中不指明方向即可,即不加箭头 (< 、>符号)即可。如 match (m)-[]-(n) return

关系的存储需要指明方向,这是出于对查询效率的考虑。查询时可以不要求或指定关系,例如:(a) -[:关系]- (b),效果就是无向/双向关系了。

@graphway 仅仅是出于查询效率的考虑吗?比如我认识你,你也认识我。这两者关系是一样的,如果建立关系就必须建立两个一样的反向关系,这难道就是以空间换时间吗?

不一定啊,我认识你不一定你认识我。如果关系的方向无关,可以只建一个,查询时不指定方向就可以了。

回到顶部