2017-03-01 24 views
1

私はグラフ内のすべての部分グラフを見つけるためにNeo4jクエリに苦労しています。基本的には、同じプロパティ(現在は名前と場所)を共有するtype_aとtype_bノードのすべてのペアを見つける必要があります。neo4j内のすべての部分グラフを見つける

a glorious subgraph

Iが〜15mln位置(灰色)ノード、〜60mln名(赤)ノード、〜320mlnのTYPE_A(バイオレット)ノードと〜250mlnのTYPE_B(黄色)ノードを有します。

私のクエリは次のようになります。

CYPHER runtime=compiledExperimentalFeatureNotSupportedForProductionUse 
EXPLAIN 
MATCH (fname:name) WITH fname 
MATCH fname_path=(user_a:user_a)-[:HAS_FNAME]->(fname)<-[:HAS_FNAME]-(user_b:user_b) 
WITH user_a, fname, user_b 
MATCH lname_path=(user_a)-[:HAS_LNAME]->(lname)<-[:HAS_LNAME]-(user_b) 
WITH user_a, user_b, lname, fname 
MATCH (user_a)-[:HAS_LOCATION]->(loc)<-[:HAS_LOCATION]-(user_b) 
RETURN user_a.id,user_b.id,fname.name,lname.name,loc.name; 

私の現在の問題は、クエリがどんな結果なしでほぼ​​二日間実行されているので、私はそれと間違って何か

答えて

1

が最初に試してみてくださいがなければならないと信じています限られたデータセットで

CYPHER runtime=compiledExperimentalFeatureNotSupportedForProductionUse 
MATCH (fname:name) WITH fname 
WITH fname LIMIT 100000 
MATCH fname_path=(user_a:user_a)-[:HAS_FNAME]->(fname)<-[:HAS_FNAME]-(user_b:user_b) 
WITH user_a, fname, user_b 
MATCH lname_path=(user_a)-[:HAS_LNAME]->(lname)<-[:HAS_LNAME]-(user_b) 
WITH user_a, user_b, lname, fname 
MATCH (user_a)-[:HAS_LOCATION]->(loc)<-[:HAS_LOCATION]-(user_b) 
RETURN user_a.id,user_b.id,fname.name,lname.name,loc.name; 

そして、バッファリングファイルに直接結果レコードをストリームボルトドライバーでのNeo4j-シェルまたはサイファー・シェルが、プログラムを使用しないでください。

+0

プログラムでは、Pythonスクリプト(例)を意味しますか? –

関連する問題