2016-03-24 26 views
0

学校の割り当てに関して、これまでのNeo4jの動作を理解しようとしていますが、そのほとんどは理解できましたが、何らかの理由でパスを除外できませんでした。Neo4jが最短経路を見つけるが、経路を除外する

私は、都市 - >都市のように使用できる道路からなるテスト割り当てを行いました。今、私は次のような状況のようにパスを除外したい:

「ルートでゴーダを取ることはありませんユトレヒトからロッテルダムへのすべてのルートを検索」

私は、ソリューションの数を思い付いたが、彼らはありません仕事と私が来た最も近い私が間違っているのは何次のコード

MATCH (Utrecht {Naam:"Utrecht"}), (Stad)-[:CONNECTIE_MET]->(Rotterdam:Stad{Naam:"Rotterdam"}), 
p = allShortestPaths((Utrecht)-[:CONNECTIE_MET*..5]-(Rotterdam)) 
WHERE NOT(Stad.Naam='Gouda') 
RETURN p,Utrecht 

とゴーダパスを含むすべてのパスを見つけましたか?私はいくつかのことを試しましたが、うまく動作せず、他の投稿からのコードはこのような状況ではうまくいかないようです。

答えて

2

最短経路よりも長い経路は含まないため、最短経路は「すべての経路を見つける」という質問に答えません。これとは別に、最短パスを最初に見つけてフィルタを適用し、最短パスを捨てて結果を出さないため、最短パスが最初に見つかってしまいますフィルタを適用したパス。しかし、これはあなたを開始するかもしれません:

MATCH p = (:Stad {Naam:"Utrecht"})-[:CONNECTIE_MET*..5]->(:Stad {Naam:"Rotterdam"}) 
WHERE NONE(x IN NODES(p) WHERE x.Naam = "Gouda") 
RETURN p; 
+0

これは大いに役立ちます!間違いなく私には他のルートを提供してくれます! :) – Tvt

関連する問題