2017-11-01 14 views
0

Cypherクエリに存在するノードとリレーションシップだけを取得する方法はありますか、ノード間のその他のリレーションシップは取得できませんか?特定のリレーションシップのみをcypher neo4jに表示

ノードにはさまざまなタイプの関係があることがわかります。しかし、分析中には、特定のタイプの関係のみを調べたいとします。残りは乱雑です。例としてムービーデータベースを使用して、次のクエリを使用しましょう。

我々はトム・ハンクスと彼が行動したすべての映画の素敵なグラフを取得し、このクエリで
match (p:Person)-[:ACTED_IN]->(m:Movie) 
where p.name='Tom Hanks' 
return p, m; 

。しかし、我々はまた面白いです、映画「あなたはその事」の関係[:DIRECTED]を取得するが、何に応じて、分析している、それは気晴らしです。私は[:ACTED_IN]の関係を表示したいだけです。次のクエリを使用する

match (p:Person)-[:ACTED_IN]->(m:Movie)<-[:DIRECTED]-(d:Person) 
where p.name='Tom Hanks' 
return p, m, d; 

各映画のディレクターの素晴らしいアイデアが得られます。しかし、ここでは、画面が乱雑な原因である[:KNOWS]の関係で乱雑です。

私はデータ視覚化製品のいくつかがこれを行うことができることを知っていますが、我々はPOCにあり、最初にデータベースを取得する必要があります。データ視覚化ツールを追加する必要がある場合は、販売が難しくなります。難しいが、不可能な売却。

現在、Neo4j 3.2を使用していますが、まもなく実際のデモ用に3.3にアップグレードされます。

+0

私の最初の推測は次のとおりです。 p.name = 'Tom Hanks'がp、a、m'を返し、[オートコンプリートをオフにする](https://stackoverflow.com)と一致する(p:Person) - [a:ACTED_IN] - >(m:Movie)/question/44165484/does-neo4j-browser-auto-complete-to-group-in-3-2-0)をクリックして設定メニューの一番下に移動し、**結果ノードを接続します**。 –

+0

ありがとう、これは動作します。しかし、私はあなたがダブルクリックして映画を見たときに、他の俳優を得るが、映画を手に入れないでダブルクリックすると、人と人との関係が分かることに気づいた。私はちょうど観察をしているのは大したことではない。 –

+0

映画は直接接続されていますか?そうでない場合は、続行する必要があります。追加の映画を入手するには、人物をダブルクリックします。また、私は答えに私のコメントを変換しました - それはあなたのために働いた場合/ upvoteを受け入れてください。 –

答えて

1

Cypherクエリに存在するノードとリレーションシップだけを取得する方法はありますか、ノード間の他のリレーションシップは取得できませんか?

解決策には2つのステップがあります。

  1. リターン例えば関係:設定メニューとunticking 接続結果ノードの下に行くことによって

    match (p:Person)-[a:ACTED_IN]->(m:Movie) 
    where p.name='Tom Hanks' 
    return p, a, m 
    
  2. ターンオートコンプリートをオフにします。

関連する問題