neo4j中的自指节点

neo4j中的自指节点,neo4j,cypher,spring-data-neo4j-4,neo4j-ogm,graph-modelling-language,Neo4j,Cypher,Spring Data Neo4j 4,Neo4j Ogm,Graph Modelling Language,如果我们在neo4j中创建自引用节点可以吗?我需要在大数据环境中使用它,这样性能才真正重要。 我找到了一个例子,但需要了解更多关于这方面的意见。一般来说哪一个更好?使用自引用节点还是将它们分解为具有不同标签和关系的单独节点? 我的方案是创建电子商务标签组和标签。标记组有标记,这是清楚的。但是,有些标记可能有子标记。因此,可以有两种解决方案: 1) 要将TAG-[has]-TAG自引用标记与{parentID,isSubTag,…}等属性一起使用,这样做的好处是我可以使用多个子标记级别。不过,我不

如果我们在neo4j中创建自引用节点可以吗?我需要在大数据环境中使用它,这样性能才真正重要。 我找到了一个例子,但需要了解更多关于这方面的意见。一般来说哪一个更好?使用自引用节点还是将它们分解为具有不同标签和关系的单独节点? 我的方案是创建电子商务标签组和标签。标记组有标记,这是清楚的。但是,有些标记可能有子标记。因此,可以有两种解决方案:

1) 要将TAG-[has]-TAG自引用标记与{parentID,isSubTag,…}等属性一起使用,这样做的好处是我可以使用多个子标记级别。不过,我不确定演出会如何

2) 使用TAH-[has]-SUB_标签。也许这个更简单,更容易理解。但是如果SUB_标签本身有SUB_子标签呢

任何帮助都将不胜感激


另外,我将使用neo4j 3.0.1独立服务器和Spring-Data-neo4j 4.1.1。在SDN用例之外,您所描述的是一个层次结构,它肯定可以在neo4j中自然建模

父/子概念只需要处理关系,不需要属性

(Tag)-[:CHILD]->(Tag)-[:CHILD]->(Tag)
我假设您的产品带有相关标签,标签可以
tags
a产品:

(Tag)-[:TAGS]->(Product)
查找产品的关联标签非常简单:

MATCH (product:Product {id: 1})
OPTIONAL MATCH (product)<-[:TAGS]-(tag)
RETURN product, collect(tags) as tag
匹配(产品:产品{id:1})

可选匹配(产品)我不确定这个问题是否适合该网站,因为没有一个答案。我建议采用最干净、最适合您的数据模型的方法,如果您在实践中遇到问题,只需担心性能。我不明白为什么你描述的两种方法会有不同的表现;自我参照与否应该没有区别。谢谢克里斯托弗。(Tag)-[:CHILD]->(Tag)-[:CHILD]->(Tag)正是我需要澄清的情况。顺便说一句,链接非常有用!谢谢你!
MATCH (product:Product {id: 1})
OPTIONAL MATCH (product)<-[:TAGS]-()<-[:CHILD*0..]-(tag)
RETURN product, collect(tag) as tags