目录
1 问题的起源
在Neo4j的1.0阶段时,它只有3个概念,即节点、关系和属性。假设我们创建了一个节点名字叫Joe,同时我们想要描述这个节点是一个人,那么我们可以给这个节点增加一个type属性,取值为person,如图1。这个方案是可行的,因为现在已经可以将此节点与‘Household good’节点和‘geo location’节点区分开来了。
图1
假设现在我们要给Joe划分到一个党派下:左翼、右翼或者中和派,尽管你可以用属性解决这个问题,但你可能会希望更容易的找到给定党派下的所有人。于是你会像图2这样做,把党派当作一个节点,然后创建Joe和党派的关系。
图2
现在你想要做的一件事是让图根据‘person’的唯一标识比如说‘name’,自动地索引‘person’节点。如果你使用的是Cypher,这是不可能的事,因为Neo4j根本分不清‘person’与‘geo location’有什么区别,当一个城市名与人名相同时。同时对于‘Middle-Wing’节点来说,它的连接是非常稠密的