Neo4jグラフでノード間の関係の強さの変化を表現したいと思います。
静的グラフの場合、これは、関係に「強度」プロパティを設定することで簡単に実行できます。
A --knows--> B
|
strength
|
3
ただし、時間の経過とともに更新する必要があるグラフの場合、書き込み前の読み取りが必要なため、プロパティの値をアトミックに(RESTインターフェイスを介して)インクリメントできないため、問題があります。入ってくるストリーミングデータに応じてグラフを更新する場合は、(単に更新するのではなく)インクリメントする必要があります。
一度に1つのRESTクライアントのみが読み取りと書き込みを行うようにする(外部同期)か、組み込みのトランザクションを使用できるように組み込みAPIのみに固執する必要があります。これは実行可能かもしれませんが、厄介なようです。
もう1つの解決策は、プロパティなしで複数の関係を記録することです。これにより、「強度」は実際には関係の数になります。
A knows B
A knows B
A knows B
強さ3の関係を意味します。
- 短所:整数の強さしか記録できません
- 利点:書き込み前の読み取りは必要ありません
- 短所:(おそらく)より多くのストレージが必要
- 短所:(おそらく)複数の関係を抽出してカウントする必要があるため、値の抽出がはるかに遅くなります
誰かがこのアプローチを試しましたか、そして特に読書のときにパフォーマンスの問題に遭遇する可能性がありますか?
これをモデル化するためのより良い方法はありますか?