Python のpy2neoバインディングを使用して、ちょっとした空き時間にneo4jを調べてみました。私は、neo4j のパスファインディングの側面に興味があります。学習のために、単純なゲーム マップ グラフ (太陽系と内部座標ナビゲーション) を作成しました。シンプルなパスファインディングは実装が非常に簡単で、neo4j のパフォーマンスは、ノードの複雑なネットワーク上の長いパスであっても非常に印象的です。
私が今注目しているのは、ナビゲーションに影響を与える関係に属性を付加することです。たとえば、特定の関係を特定のユーザー、キャラクター、またはキーを持つ人物のみにロックしたいとします。
これをパスファインディングに追加してパスを検索する方法がわかりませんが、そうすると、満たされる/拒否される追加の制約があるかどうかがチェックされます。
関係属性に基づいてパスをブロックできますか (つまり、以下の疑似表現)。
(node 5, 'linked', node 6) with attribute 'path_blocked': True
前提条件なし:
start s=node(22), e=node(46)
MATCH p = shortestPath((s)-[*..100]-(e))
return p
特定の関係にこのパスの進行をブロックする属性があるかどうかをパスファインダーに考慮させる方法はありますか?