2012-05-09 38 views
1

我需要维护一个包含具有通常属性或字符串属性的节点的树,可以在运行时将新属性添加到节点等。因此像Neo4j这样的图形数据库是一个明显的解决方案。但是有一点轻微的变化:当一个属性被改变时,我需要保留一个旧值的记录,并且能够高效地查询这些旧值(特别是像“给我加25个节点的属性X值Y,从时间Z开始“以支持分页,显然”获得最新价值“也需要高效。代表这一点的好方法是什么?使用Neo4j存储和查询属性历史记录

回答

1

TimelineIndex几乎给我所需要的,除了限制点击次数。但是从JavaDoc的IndexHits看来,如果我按照需要迭代多少,然后关闭迭代器,它应该不会太重要。

所以一个解决方案看起来像这样:代表我需要历史记录作为节点的每个属性;所以不是

Sensor 
----- 
name = "battery" 
measurement = 1 

Sensor   attr 
-----   -+--> name = "measurement" 
name = "battery" | value = 1 
        | timestamp = 100000000 
        | 
        +--> name = "measurement" 
        | value = 2 
        | timestamp = 100000001 
        | 
        +--> name = "measurement" 
         value = 1 
         timestamp = 100000002 

然后我为每一个Sensor节点TimelineIndex和每个属性包含历史。

相关问题