2016-03-01 87 views
0

性能我必須找到兩個節點之間的所有路徑。每條路徑的長度必須在1到5之間(例如2和3)。的Neo4j - 對路徑查詢

所以我用這個查詢:

profile match p = (a:Station {name : 'X'}) - [r*2..3] -> (b:Station {name : 'Y'}) return distinct p 

我有一個指標:站(名稱)

但是當我資料這個查詢我有這樣的結果:

my query's profile 所以問題是neo4j將這個節點B的每個可能的關係都用到了這個節點上,然後使用這個名稱進行過濾。這是僅僅採取涉及這兩個特定節點的關係的一種方式嗎?

+0

你有不同的類型,這些節點之間的關係的?你在關係上使用標籤嗎?你是否在名稱屬性上設置了索引? http://neo4j.com/docs/stable/query-schema-index.html – Supamiu

+0

至於說,我有一個指數:站(名稱) 在我的圖形中的每個節點都站 是的,我有3個不同類型的關係。 –

+0

哦,沒有看到這個,我的壞,那另外兩個問題呢? :) – Supamiu

回答

1

也許你可能想使用allShortestPaths爲,如:

PROFILE MATCH p=allShortestPaths((n:Person {name:'Ian Robinson'})-[r*1..5]–(b:Person {name:'Michal Bachman'})) 
RETURN p 

enter image description here

+0

但實際上是什麼最短路徑,每個路徑之間的區別?我很想錯過一些路徑 –