Indexing Neo4J中的关系标签和索引

Indexing Neo4J中的关系标签和索引,indexing,neo4j,Indexing,Neo4j,可以在新的Neo4J 2.0.1中标记节点,但是相同的标记是否适用于关系?如果我有一个类型为:TO的关系,我可以在它的“statement”属性上创建这样的索引吗 CREATE INDEX ON :TO(statement) 谢谢大家! a)关系上不能有标签。关系有一种类型(可以看作是一种标签)。如果需要多个标签,只需创建具有不同类型的多个关系即可 b) 关系上的架构索引是不可能的。图形查询通常从节点开始,而不是从关系开始,因为节点是域中的“事物”。从关系开始通常是重新思考图形模型的标志。如

可以在新的Neo4J 2.0.1中标记节点,但是相同的标记是否适用于关系?如果我有一个类型为:TO的关系,我可以在它的“statement”属性上创建这样的索引吗

 CREATE INDEX ON :TO(statement)
谢谢大家!

a)关系上不能有标签。关系有一种类型(可以看作是一种标签)。如果需要多个标签,只需创建具有不同类型的多个关系即可


b) 关系上的架构索引是不可能的。图形查询通常从节点开始,而不是从关系开始,因为节点是域中的“事物”。从关系开始通常是重新思考图形模型的标志。如果您仍然确信需要关系索引,您可以使用。

Hi Stefan,是否有计划向关系添加标签和模式索引?我们有一个场景,我认为搜索关系并让它们有多个标签是有意义的。我们使用节点表示域中的“事物”(人员、地址等),但关系包含元数据,这是我们对该关系的“证据”,例如,它来自什么类型的文档、文档日期等。我们有不同文档类型的层次结构。现在我们可以使用多个遗留索引,但最好有标签和模式索引。ThanksI同意,限制您的用户必须重新考虑他们的图形模型,因为他们希望在关系中包含元数据,这有点太过强制了。例如,在我的例子中,我需要这些数据来跟踪1)谁创建了关系,2)它是在哪个上下文中创建的,3)它是在什么时候创建的,4)它是在什么语句中创建的。在那种情况下,你建议我怎么办?谢谢@StefanArmburster问题是我所说的关系实际上是一种关系。将其称为节点是对已经存在的抽象(节点、关系)的进一步抽象,在本例中,使用Neo4J的全部意义对我来说已经不存在了,因为我可以在其他数据库中创建两个表并在其中表示该信息。这就是为什么我不想改变我的图形模型。你能想出其他解决办法吗?非常感谢。我同意迪米特里的观点。在我们当前的模型中,我们有一些有意义的关系,如购买-->财产的人或-->公司股东的人。若我们在这些节点之间创建中间节点,那个么我们就失去了所有的意义,一切都变成了实体——出现在-->文档中。我想我们可以在查询时通过位于Neo4j顶部的一层添加这一含义。这是你建议的解决这个问题的方法吗?当然,想要向关系中添加元数据,特别是谁创建了元数据以及何时创建元数据,并在查询中使用元数据,这是很常见的。ThanksI也希望看到标记关系的能力。关系可以是多种类型之一,就像节点可以是多种类型之一一样。正如一个节点可以是一个人,也可以是一个参与者一样,我可以考虑将多个标签应用于单个关系的需要。例如,买房的行为可以标记为投资、购买、终身决定或简单交易。将标签应用于关系的能力使我们能够基于不同的上下文在网络中抽象谓词和查询。建议的替代方案使这一点变得困难。