如何解决密码:代表嵌套图?
您将如何在Graph DB中表示图形。 F.e.助记符可能看起来像这样:
((a)->(b))->(c)
((a)->(b))->((c)->(d))
从某种意义上说,(c)的(a)->(b)充当单个节点,但内部是两个链接的节点。 当然,您应该能够进一步嵌套它们。
有一些图结构可以用来表示这个吗?
(a)<-[:1]-(ab)-[:2]->(b)
(ab)<-[:1]-(abc)-[:2]->(c)
???
@bouteillebleu:第二个变种
(a)-[:fst]->(ab)-[:snd]->(b)
(ab)->(c)
解决方法
一个节点引用任何大小和复杂度的整个子图的最简单,最简洁的方法可能是在该节点中存储一个cypher
属性,该属性的值是可以生成所需子图的Cypher查询字符串。
作为示例,这是您如何表示特定subgraph1
包含给定subgraph2
的断言:
CREATE
(subgraph1:Graph {cypher: 'MATCH p=(f:Foo)-[:HAS]->(:Bar) WHERE f.id = 123 RETURN p'}),(subgraph2:Graph {cypher: 'MATCH (f:Foo) WHERE f.id = 123 RETURN f'}),(subgraph1)-[:CONTAINS]->(subgraph2)
如果由subgraph1
表示的实际子图由数十亿个节点和关系组成,则可能没有其他实际方法来表示子图。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。