4

http://console.neo4j.org/r/yx62bk

上のグラフでは、クエリ

start n=node(7,8,9) 
match n-[objectScore:score]->o-[:object_of_destination]->d<-[:destination_score]-n, 
o-[:instance_of]->ot, o-[:date]->oDate, d-[:date]->dDate where ot.name='HOTEL'  
return n, o, objectScore,  d;

oをnullとして返します。

クエリを変更して、関係識別子を削除します-objectScore

start n=node(7,8,9) 
match n-[:score]->o-[:object_of_destination]->d<-[:destination_score]-n,
o-[:instance_of]->ot, o-[:date]->oDate, d-[:date]->dDate where ot.name='HOTEL'  
return n, o, objectScore,  d;

そして出力はoノードを正しく返します。

私のシナリオでは、両方が必要です。どうすればいいのかわからない?これに関する提案。

4

1 に答える 1

0

いいね。githubでCypherの問題を追跡しているので、そこで問題を公開しました:https ://github.com/neo4j/community/issues/837

報告してくれてありがとう!

編集:私は問題を見つけました。簡単な回避策は、皮肉なことに、オプションの関係を導入することです。問題は、Cypherが使用できるマッチャーの1つにあり、パターンの一部をオプションとしてマークすることにより、Cypherに別のマッチャーを使用するように強制します。あなたがしたい場合は

したがって、MATCHを次のように変更します。

match n-[objectScore:score]->o-[:object_of_destination]->d<-[:destination_score]-n, 
      o-[:instance_of]->ot, 
      o-[:date]->oDate, 
      d-[?:date]->dDate 

実際の修正は作業中です。

于 2012-08-30T19:32:55.047 に答える