在Neo4j中存储多个独立树

在Neo4j中存储多个独立树,neo4j,tree,cypher,Neo4j,Tree,Cypher,我想存储多个独立的树(这些树之间没有关系)。我认为应该为每个独立的树生成并分配一个唯一的标签。然后每个查询都会有一个使用这些标签的过滤器。因此,如果有10000棵树,我必须生成10000个不同的标签。是否有更好的解决方案,如多重图或其他可用的解决方案?我建议对所有树使用一个标签,例如:Root,以及包含树的唯一标识符的Root\u id属性 您可以打开root\u id以确保没有两棵树具有相同的id。唯一约束的副作用是在属性上创建索引,因此通过root\u id访问:root节点将非常快。标签用

我想存储多个独立的树(这些树之间没有关系)。我认为应该为每个独立的树生成并分配一个唯一的标签。然后每个查询都会有一个使用这些标签的过滤器。因此,如果有10000棵树,我必须生成10000个不同的标签。是否有更好的解决方案,如多重图或其他可用的解决方案?

我建议对所有树使用一个标签,例如
:Root
,以及包含树的唯一标识符的
Root\u id
属性


您可以打开
root\u id
以确保没有两棵树具有相同的id。唯一约束的副作用是在属性上创建索引,因此通过
root\u id
访问
:root
节点将非常快。

标签用于节点,而不是树。您是在询问如何使用标签来标记所有树节点,还是只标记根节点,或者其他什么?我只想在neo4j中存储BOM表树。假设有10^5个BOM表树,其中每个树都有10^5个节点,因此总共有10^10个节点。案例1:为每个树分配一个唯一的标签,我的查询将是:“MATCH(n:label1{nodeId:100})return n”“MATCH(n:label2{nodeId:100})return n”案例2:为每个节点分配一个公共标签并添加一个属性树id。然后查询将是:“MATCH(n:bomNode{nodeId:100,tree:1})return n”“MATCH(n:bomNode{nodeId:100,tree:2})return n“在时间复杂度方面,哪一个更好?为什么?我会以每种方式加载一个有代表性的子集,然后使用EXPLAIN和/或PROFILE来查看哪一个更有效。我的猜测是,带有索引属性的单个标签效率更高,但查询计划器会让您确定。