作者:mylvfamily | 2023-07-12 10:29
可以在新的Neo4J 2.0.1中标记节点,但对关系做同样的标签工作吗?如果我有类型的关系:TO,我可以在其"语句"属性上创建一个索引吗?
CREATE INDEX ON :TO(statement)
谢谢!
1> Stefan Armbr..:
a)你不能在关系上有标签.关系有一种类型(可以认为是一种标签).如果您需要多个标签,则只需使用不同类型创建多个关系
b)关系上的模式索引是不可能的.图表查询通常从节点开始,而不是在关系处开始,因为节点是域中的"事物".从一段关系开始,恕我直言通常表明需要重新考虑您的图表模型.如果您仍然确信需要关系索引,则可以使用遗留索引.
嗨Stefan,是否有计划为关系添加标签和架构索引?我们有一个场景,我认为搜索关系以及它们有多个标签是有意义的.我们在域中使用节点作为"事物"(人,地址等),但关系包含元数据,这是我们对该关系的"证据",例如它来自哪种类型的文档,文档日期等.我们有不同文档类型的层次结构.目前我们可以使用多个遗留索引,但拥有标签和架构索引会更好.谢谢
@StefanArmbruster事实上,我所说的关系实际上是一种关系.将它称为节点正在进一步抽象已经存在的抽象(节点,关系),在这种情况下,使用Neo4J的全部意义已经消失,因为我可以在其他数据库中创建2个表并在那里表示该信息.这就是为什么我不想改变我的图模型.你能想到其他任何解决方案吗?谢谢!
我同意,限制您的用户不得不重新考虑他们的图表模型,因为他们希望在他们的关系中有元数据有点太强大.例如,在我的情况下,我需要这些数据能够跟踪1)创建关系的人,2)创建它的上下文,3)创建时,4)创建它的语句是什么.在那种情况下,你建议我做什么?谢谢!
我同意deemeetree.使用我们当前的模型,我们拥有有意义的关系,如人 - 买 - >财产或人 - 是 - >公司的股东.如果我们在这些之间创建中间节点,那么我们将失去所有意义,一切都变成实体 - 出现在 - >文档中.我想我们可以通过位于Neo4j之上的层在查询时添加该含义.这是你推荐的解决这个问题的方法吗?当然,想要向关系添加元数据,特别是创建它的人以及何时,以及在查询中使用元数据一定是很常见的.谢谢