0

フライト、ステーション、航空機を含むドメインがあります。駅間はフライトとフライト利用機で結ばれています。(これは、neo4jで特定の基準を満たすすべてのパスを見つける際の問題の拡張です)接続時間の要件を満たすだけでなく、wifiを備えた航空機を使用するすべての有効なルートを見つけたいです。neo4j コンソールでいくつかのサンプル データを作成しました。リンクはconsole.neo4j.org/r/sdcixyです。どんな提案も素晴らしいでしょう。

4

1 に答える 1

1

最初のステップは、プロパティ「wifi」が 1 の Aircraft ノードに接続されたすべてのフライト ノードのパスを取得することです。このステップは、節 1 ~ 4 によって実装されます。節 5 は、修飾されたパス上のフライト ノードを次の「Where」に渡します。節 6 は、接続が条件を満たさないルートを除外します。最後の句は、有効なルートのフライト名を返します。

1. Match p=stb:Station-[:Connect*]->flt:Flight-[:Connect*]->ste:Station, flt-[:Use]->ac:Aircraft
2. Where stb.name='ST_B' and ste.name='ST_E'
3. distinct p as path, collect(ac) as acs
4. Where all ( ac in acs where ac.wifi = 1)
5. With filter(x in nodes(path) where x:Flight ) as flts
6. Where all ( i in Range(0,length(flts)-2) Where flts[i].arrvTime < flts[i+1].dptrTime)
7. Return extract(flt in flts | flt.name)
于 2013-09-24T15:19:17.940 に答える