1

通常は文字列である属性を持つノードを含むツリーを維持する必要があります。実行時に新しい属性をノードに追加できます。したがって、Neo4jのようなグラフデータベースは明らかなソリューションです。ただし、少しひねりがあります。属性が変更された場合、古い値の記録を保持し、これらの古い値を効率的にクエリできるようにする必要があります(特に、「ノードの属性Xの25個の値を指定してください」などのクエリY、ページングをサポートするために時間Zから開始し、明らかに「最新の値を取得する」も効率的である必要があります)。これを表す良い方法は何でしょうか?

4

1 に答える 1

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

そして、TimelineIndexSensorノードと各プロパティの履歴を維持します。

于 2012-05-09T22:33:03.837 に答える