如果你应用一个严格的属性图模型,你会发现你有很好的“数据本地”操作,比如探索一个节点的周围数据,比如沿着关系深度 5 跳。然而,像“给我所有名称属性值为'Tom*'的节点”之类的全局操作需要在图形模型中对数据进行全面扫描。这在理论上是一个限制。在实践中(如在http://neo4j.org中),图形引擎与 Lucene、BerkelyDB 或 Cassandra 等全局变量相结合,可以处理在某些分析场景中经常使用的这种数据全局方面。
因此,没有真正的限制,只是处理数据的全局和本地操作的不同方式和不同模式。请参阅http://wiki.neo4j.org/content/Domain_Modeling_Gallery以获取图表中建模域的一些示例,甚至是 GIS 示例,例如https://github.com/neo4j/neo4j-spatial/raw/master/src/site/打开街道地图图表上的pics/one-street.png 。
对于像 Facebook 这样的海量数据存档,我只会存储上个月左右的状态更新,以便在图表中快速检索和推荐。其余的我将归档在 Cassandra 之类的解决方案中,并在图表中提供有关如何在需要时检索此“归档子图”的参考和归档关键指标。