Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Graph 使用Neo4j存储和查询属性历史记录_Graph_Neo4j_Graph Databases - Fatal编程技术网

Graph 使用Neo4j存储和查询属性历史记录

Graph 使用Neo4j存储和查询属性历史记录,graph,neo4j,graph-databases,Graph,Neo4j,Graph Databases,我需要维护一个树,其中包含属性通常为或字符串的节点,可以在运行时向节点添加新属性,等等。因此,像Neo4j这样的图形数据库是一个明显的解决方案。但有一个小小的变化:当一个属性被更改时,我需要保留其旧值的记录,并且能够高效地查询这些旧值(特别是像“从时间Z开始,为节点Y的属性X提供25个值”这样的查询,以支持分页,显然,“获取最新值”也需要高效)。有什么好的方式来表达这一点呢?几乎满足了我的需求,除了限制点击次数。但是从IndexHits的JavaDoc来看,如果我迭代尽可能多的内容,然后关闭迭代

我需要维护一个树,其中包含属性通常为或字符串的节点,可以在运行时向节点添加新属性,等等。因此,像Neo4j这样的图形数据库是一个明显的解决方案。但有一个小小的变化:当一个属性被更改时,我需要保留其旧值的记录,并且能够高效地查询这些旧值(特别是像“从时间Z开始,为节点Y的属性X提供25个值”这样的查询,以支持分页,显然,“获取最新值”也需要高效)。有什么好的方式来表达这一点呢?

几乎满足了我的需求,除了限制点击次数。但是从
IndexHits
的JavaDoc来看,如果我迭代尽可能多的内容,然后关闭迭代器,这似乎不太重要

所以一个解决方案是这样的:表示每个属性,我需要将其历史记录作为节点;所以不是

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
然后我为每个
传感器
节点和每个具有历史记录的属性维护一个
TimelineIndex

几乎满足了我的需要,除了限制点击次数。但是从
IndexHits
的JavaDoc来看,如果我迭代尽可能多的内容,然后关闭迭代器,这似乎不太重要

所以一个解决方案是这样的:表示每个属性,我需要将其历史记录作为节点;所以不是

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
然后我为每个
传感器
节点和每个具有历史记录的属性维护一个
TimelineIndex