2013-03-12 12 views
11

特定の時間だけ有効なノード間の関係があります。簡単な例:Person Pは時刻t1から時刻t2にかけてアドレスAに居住していました。関係にvalidFromとvalidUntilプロパティを置くことはできますが、cypherを使用するときはWHERE句でこれをファイナライズする必要がありますが、MATCH句にその欲しいと思います。Neo4Jの時間制約との関係

これをMATCH句に入れたいのは、大きなサブグラフを潜在的に横断する可能性があり、そのほとんどが無視される可能性があることだけです。これは、歴史的な関係の大きなセットでは特にそうです。

私は、特定の日付ノードに対してvalidFromとvalidUntilの関係を別々にすることができます。そうすればMATCHを使うことができます。このようなタイムノードのセットが限られていれば、これは問題ありませんが、タイムスタンプを保存する必要がある場合、これを行うことは現実的ではありません。

どのようにこのタイプのクエリにCypherを最適化できますか? 時間有効性インジケータを持つノードとリレーションシップでグラフをタイムスライスする方法はありますか?

+0

サイファーは、可能な限り自動的に試合の句に式を引っ張るので、彼らは、すぐに彼らができるとして評価されています。 –

+0

実際にあなたの質問を表示できますか? –

+0

これでうまくいく解決策を考え出しましたか? – John

答えて

4

は、ここで説明したタイムラインのモデリングを見てきました:http://docs.neo4j.org/chunked/milestone/cypher-cookbook-path-tree.html

+1

これは限られたイベントタイミングでは機能しますが、秒以下の時間をモデル化することはできません。私がすでに提案したものですが、スケールアウトしません。 – ignazw

+0

上記のモデルを使って日々の世話をし、ノード上で時間を維持する分割モデルはどうですか?あなたが持っているデータの種類についてはわかりませんが、同じモデルを時間に拡張し、必要に応じて時間関係を作成することもできます...これは、あなたが持っているデータパターンにとっては実用的ではないかもしれません – Luanne