簡単に言えば、私の質問は、Neo4j で使用されるトラバーサル ロジックを変更できるかどうかです。到達可能性の計算中に、どのエッジがトラバースされ、どのエッジがトラバースされないかを制御する方法です。
完全な説明:
現在の DB から neo4j への移行を検討していますが、neo4j が次のタスクに適しているかどうか疑問に思っています。
約 10M の単純なノードを持つ大きなグラフがあります。それらの属性は単一の ID のみです。
エッジも「スタンダード」「オープン」「クロージング」の3種類をご用意。「オープニング」と「クロージング」も「色」属性を持っているので、一致させます。各「開始」エッジには、一致する「終了」エッジが 1 つだけあります。たとえば、「3」の色の開始エッジが 1 つあるため、同じ色の終了エッジも 1 つあります。
トラバーサルのルールがかなり単純な 2 つのノード間の到達可能性を解決する必要があります。通常のエッジを好きなように通過したり、開いているエッジを好きなように通過したりできます。スタックしますが (これはトリッキーな部分です)、いくつかの「閉じた」エッジがあるジャンクションに到達した場合は、最後に遭遇した「開いた」エッジと一致する閉じたエッジを通過し、その「開いた」エッジをスタック。
例えば:
a -[STANDARD]->B-[Open color:3]->C-[Standard]->D-[Close color:3]->E
および
D-[Close color:4]->F
D には、色の異なる 2 つの「閉じた」エッジがあることに注意してください。上記で定義されたルールにより、カラー スタックの一番上に [3] があるため、E は A から到達可能です。
ただし、F は A から到達できません。
このようなグラフ トラバーサル ロジック用に neo4j を構成できますか? ありがとう!!