2017-05-25 22 views
0

在我的Neo4j圖形數據庫我有問題,人作爲我的節點,關係「通」(發行發行) ,和「資源」(發給人)。查找路徑大於x長,他們的權重(財產)的總和是大於Y的暗號的Neo4j

我感興趣的是找到問題的所有路徑,他們的權重之和大於閾值y大,和鏈的整體長度比X。

我不知道如果下面的作品,因爲我認爲它只是給我的問題有5個環節

MATCH (s:Issue)-[rs:links*5..]->(m:Issue) 
WITH s, rs, m 
unwind rs as r 
return s AS source_node, 
     id(s) AS source_id, 
     r, 
     m AS target_node, 
     id(m) AS target_id 

我已經與數嘗試作爲很好,但我不認爲這是正確的方式繼續。

回答

0

要做到這一點,使用REDUCE()積累關係的權重。考慮X = 5和y = 200:

MATCH (s:Issue)-[rs:links*5..]->(m:Issue) // match depths with 5 (x) or more 
WITH REDUCE(weights = 0, rel IN rs | weights + rel.weight) AS total_weight, s, rs, m 
WHERE total_weight < 100 // filter by total_weight < y (100) 
unwind rs as r 
return s AS source_node, 
     id(s) AS source_id, 
     r, 
     m AS target_node, 
     id(m) AS target_id