2017-01-17 16 views
2

neo4jサンプルムービーのneo4jグラフムービーデータベースで、id = 1100のActorノードとid = 65731のActorノードの間の接続を見つけるにはどうすればよいですか?私はたくさん試しましたが、これまでid 11ooはArnold Schwarzeneggerであり、id 65731はSam Worthingtonです。私がACTS_In関係を使ってCypherを実行すると、一緒に映画がないことが示されます。私はこのサイファーを使用していた関係を見つけるためのNeo4jムービーデータベース内の2つのノード間の接続を見つけよう

MATCH (a:Actor {id:"1100"}),(b:Actor {id:"65731"}) 
RETURN a.name, b.name 

Match(a:Actor{name:"Arnold Schwarzenegger"})-[:ACTS_IN]->()<-[:ACTS_IN]-(b:Actor{name:"‌Sam Worthington"}) 
using index a:Actor(name) 
using index b:Actor(name) 
return count(*) 

私は、接続のいずれかの種類を探しています私はこのサイファーを使用している名前を見つけるための

。同じ映画だけでなく、

+1

実行しようとした実際のクエリに貼り付けることはできますか?また、彼らは両方の行為をした映画、または他の種類の接続を探している映画を探していますか? – InverseFalcon

答えて

1

一般に、任意の2つのノード間のパスを見つけるには、variable-length relationshipクエリを実行できます。例えば

:しかし

MATCH path=(a:Actor{name:"Arnold Schwarzenegger"})-[*]-(b:Actor{name:"Sam Worthington"}) 
RETURN path; 

注意、無制限の可変長の関係クエリが完了するまでに非常に長い時間がかかることができます(または、決して完全に見えるかもしれません)でも比較的小さいのDBで、ということ。ベストプラクティスは、クエリの深さに妥当な上限を設定することです。たとえば、最大5のパスの深さを検索するには:

MATCH path=(a:Actor{name:"Arnold Schwarzenegger"})-[*..5]-(b:Actor{name:"Sam Worthington"}) 
RETURN path; 
+0

これはまったく新しい問題ですので、新しい質問を作成する必要があります。 (そして、あなたは@InverseFalconが提案するように、この現在の質問のテキストを改善すべきです。) – cybersam

+0

ありがとう。私はその提案に従っています。 –

+0

素晴らしい。また、あなたの質問に最も役立つ[受諾](http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work)の回答を覚えておいてください。 – cybersam

関連する問題