Neo4j中Label和Property之间有什么区别?

Dav*_*vid 8 properties labels neo4j

我是Neo4j的新手,但在RDBMS设计和开发方面经验丰富.试图理解Neo4j中Label和Property之间的区别.我读过的任何内容似乎都没有区分,事实上,我发现这些术语经常互换使用.我认为必定会有所不同,否则Neo4j的智者和女人都不会创造两者......

谢谢你的帮助!

Rol*_*olf 8

属性是键值对,它是关系或节点的一部分.

标签是您分配给一个或多个节点的名称/标签/类别.请注意,具有相似标签的节点不一定共享同一组属性键.

约束和索引是针对标签定义的.(虽然旧版索引API - 它们是pre-v2,即预标签 - 仅适用于Properties).

从文件系统的角度来看,常规标签查找通常比常规属性查找更快,因为标签在其自己的文件(即"标签存储")中进行存储和规范化,而不是传播,并在所有相应的节点上重复进行属性.

  • 非常感谢您的回复,我很感激。自从发布问题以来,我还进行了更多阅读,并且对差异有了更好的理解。但我仍然对它们明显的冗余感到困惑。当然,我可以创建一个标签为“Person”的节点,以及另一个标签为“Vehicle”的节点,但是我不能通过创建一个名为“Type”的属性并给它一个值来实现同样的事情一个节点上的“人”和另一个节点上的“车辆”?似乎 Label 只是一种特殊类型的属性(键值对),您基本上具有“无键”值。 (2认同)