新手注意图形和图形建模的世界。将Neo4J用作本机图形数据库。
我正在开发一个通用(领域不可知)产品的用例。它可以是“人”,也可以是“动物”,也可以是“汽车”等等。
我不想每次都为新的领域建模(并编写转换代码)。这使得产品有点僵化。
我的想法是,通过将Node建模为“Node”,将Connection建模为“Connection”,并在其中包含一大堆属性来区分和使用它们,从而获得一个通用的图模型。
它让我觉得它冲淡了图形数据建模,但提供了很大的灵活性。这就是这里的权衡吗?有什么建议吗?
当我在一些地方读到,总是对特定的关系建模比将它们建模为具有不同属性的单个关系要好得多,这种方法是否有任何性能影响。这是一个正确的说法吗?当然,我想要做的最后一件事是先将整个网络(数百万)加载到neo4j内存中,然后让neo4j根据属性对其进行过滤。或者它通过索引属性来更智能地工作?
发布于 2020-04-08 03:40:38
整个neo4j生态系统都是围绕多个节点标签和多种关系类型进行设计和深度优化的。
例如:服务器保存有关每个标签的实例数量的统计信息,并使用该知识来优化某些Cypher操作。如果您决定对所有节点使用单个标签(或者甚至决定根本不使用任何标签),则有时会导致Cypher Planner创建效率非常低的计划。
当然,与所有系统一样,neo4j也有一些可以改进的地方。但我建议你在断言使用neo4j的方式“有点僵化”之前,先获得更多的经验。你可能会感到惊喜。
https://stackoverflow.com/questions/61080396
复制相似问题