2017-03-01 249 views
1

我正在努力用Neo4j查詢來查找我圖中的所有子圖。基本上,我需要找到所有共享相同屬性(當前,名稱和位置)的type_a和type_b節點對。查找neo4j中的所有子圖

a glorious subgraph

我〜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腳本(例如)? –