こんにちは、
上のグラフでは、我々はに、その値の効果を更新しているノードの値プロパティのいずれかのシナリオを持っています残りのノードに伝搬される。この値変更イベントは、どのようにしてサイファークエリによって伝播されるべきですか。
こんにちは、
上のグラフでは、我々はに、その値の効果を更新しているノードの値プロパティのいずれかのシナリオを持っています残りのノードに伝搬される。この値変更イベントは、どのようにしてサイファークエリによって伝播されるべきですか。
は、この特定のプロパティは常に、ノードのこのグループのために同じであるべき要件ですか?ご支援に感謝同じでなければならない場合は、代わりにノードに抽出し、それを使用する必要があるすべてのノードからそのノードへの関係を作成することをお勧めします。
値を1つの場所に入れると、そのノードでプロパティの変更が1回だけ必要になり、すべてが正しい状態になります。
EDIT
要件はかなりあいまいなので、私の答えは、同様にあいまいになります。
リレーションシップタイプに基づいてマッチングしている場合は、リレーションシップに何らかの多重性が必要で、マッチで許可されたタイプを指定することができます。以下のような:トラバースを継続させ関係のこれ以上存在しなくなるまで、あなたのstartNodeアップ関係のチェーンからすべての単一のノードに一致します
MATCH (start:RNode)-[:R45|R34|R23|R12*]->(r:RNode)
WHERE start.ID = 123 (or however you're matching on your start node)
。
さらに複雑な拡張が必要な場合は、APOCプロシージャライブラリのPath Expanderを参照してください。
正しい照合クエリを見つけたら、一致したすべてのノードの再計算を行うだけです。
こんにちは、プロパティ値は同じではありません。依存ノードのプロパティ値はいくつかのルールに基づいて計算する必要があります – j2eeuser
私の答えを少し編集しました。あなたの要件に合ってほしいと願っています – InverseFalcon
MATCHクエリで使用できるリレーションシップタイプのラベルの数には制限があります: R45 | R34 |約20〜30のラベルがあるとしましょう。関係に非常に多くのラベルを付けるのは正しいアプローチですか?すべてのSノードはR5で終了しないことがあります。それらのいくつかは、異なるRノードで分岐して終了します。だから、私はSNode名(S1、S2)を関係ラベル名として考えています。 – j2eeuser
ダウンストリームノードで照合するときに従う関係に制限はありますか? – InverseFalcon
アップデートはアップストリームで行わなければならない。つまり、ノードのプロパティが変更された場合(例ではR5とする)、インパクトのあるすべての上流ノードは値プロパティを再計算することになる(R5はR4、R3いくつかのシナリオではR2、R5はS1..S5ノードに影響を与える) – j2eeuser
ルールのようなサウンドはさまざまです。ラベルがないか、これらのノードが何であるかの論理と、その関係にどのような意味があるかを知っているので、解決策を提示することはむしろ困難です。私は、これらのシナリオがどのように動作するはずか、何らかのアドバイスを提供する前に、どんなノードや関係をトラバースするためにどの基準を使うべきかについて、より具体的なものが必要だと思います。 – InverseFalcon