neo4j/cypher でパターン マッチングを行おうとしていますが、この問題に遭遇しました。
検索したいグラフには次の 2 種類があります。
スター グラフ: 1 つの中心ノードと複数の発信関係を持つグラフ。
長さ n の折れ線グラフ: ノードが繰り返されない長さ n の折れ線グラフ (グラフには双方向のエッジとサイクルがいくつかあります)
したがって、主な問題は、次のようなことをするときです。
- MATCH a-->b, a-->c, a-->d
- 一致 a-->b-->c-->d
Cypher は (私が試したとき)、a、b、c、および d がすべて異なるノードであることを保証しません。小さなグラフの場合、これは簡単に修正できます
WHERE not(a=b) AND not(a=c) AND ...
しかし、サイズが 10 以上のグラフを作成しようとしているため、すべてのノード間の同等性をチェックすることは実行可能なオプションではありません。Afaik、RETURN DISTINCT は、変数間の等価性をチェックせず、異なる行間でのみチェックするため、うまく機能しません。異なる名前のノードを区別するためにクエリを指定できる簡単な方法はありますか?