neo4jで遊んでいる間にいくつかの質問が発生しました。現在のところ、これらのうち2つがあります。neo4jでの時間/日付ベースの検索
- ノードXからノードY(RegEx?/ Wildcard?)への特定のパスを検索する際の関係/エッジを制限する方法はありますか。たとえば、すべてのエッジには2つの時間属性「開始」と「終了」があります。朝の午前2時から午前3時の間に発生したノード間の経路を探したいのですが?
- 時間パスをどのように追跡できますか?車が「A」から「B」に駆け上がったとします。ルートは1時間、すなわち午前5時から午前6時を要した。次のセクションである 'B'から 'C'までは1時間ほどかかりましたが、運転手が1時間の休憩を取ったため、午前7時から午前8時まででした。論理的に有効な(時間)パスのみが許可される方法でneo4jをどのように照会することができますか。例えば、これは有効であるべきである:
(Prague) -[:DISTANCE {begin: '5 am', end: '6 am'}]->(Brno), (Brno) -[:DISTANCE {begin: '7 am', end: '9 am'}]->(Liberec)
これは無効でなければならないのに対し:
所与(Prague) -[:DISTANCE {begin: '5 am', end: '6 am'}]->(Brno), (Brno) -[:DISTANCE {begin: '4 am', end: '6 am'}]->(Liberec)
別の例は、次のグラフである。
CREATE (a:BoxingMachine {title: 'A'})
CREATE (b:BoxingMachine {title: 'B'})
CREATE (c:BoxingMachine {title: 'C'})
CREATE (d:BoxingMachine {title: 'D'})
CREATE ((a)-[:FORWARDED {start_time: '9:00 am'}]->(b))
CREATE ((a)-[:FORWARDED {start_time: '7:00 am'}]->(c))
CREATE ((c)-[:FORWARDED {start_time: '8:00 am'}]->(b))
CREATE ((a)-[:FORWARDED {start_time: '11:00 am'}]->(d))
CREATE ((d)-[:FORWARDED {start_time: '10:00 am'}]->(b))
私はノード 'A'からノード 'B'へのパスを探しています。 2、我々は唯一の制約 "のstart_time" を考える場合には
'A' --> 'B'
'A' --> 'C' --> 'B'
'A' --> 'D' --> 'B'
:制約 "のstart_time" を無視して、私たちは、このグラフでは3つの可能なパスを持っています左パス:
'A' --> 'B'
'A' --> 'C' --> 'B'
パス'A' --> 'D' --> 'B'
は無効であるため。この場合、年表は間違っています。 Cooworker 'A'は同僚のDに11時にパッケージを送ったが、同僚はこの特定のパッケージを同僚のBに1時間早く転送した。魔女は不可能です。
PS:ASCIIアートとしてエッジを持つノードを生成するツールはありますか?コンソールのために? :)
@EvelKnievel:あなたが知る必要がある何か他のものはありますか? – cybersam
ありがとうございました。あなたの答えはこの特定のケースでグラフをたどる方法を理解するのに十分であった。 「救済」と「救済」は、私が探していた欠けている部分でした –
素晴らしいです。あなたの質問に最も適した回答を[承諾する](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)を覚えておいてください。 – cybersam