我有以下圖表查找一個節點使用的Neo4j和/或Python在路徑的步驟(深度)
每個這些關係是「USES_COMPONENT
」
規格化的Neo4j暗號後結果,我有一個結構像
{
'1': {
'label': 'Product',
'properties': {...},
'type': 'VERTEX'
},
'2': {
'label': 'Component',
'properties': {...},
'type': 'VERTEX'
},
'3': {
'label': 'USES_COMPONENT',
'properties': {...},
'type': 'EDGE',
'direction': 'OUT',
'from': '1',
'to': '2'
}
}
最終描述整個圖(非常類似於原始密碼響應)
我目前的密碼查詢是:(Froot Loops的uuid是a1
。我分配這一點。)
MATCH p = (pr:Product)-[:USES_COMPONENT*]->()
WHERE pr.meta_uuid = 'a1'
RETURN p
我需要做的是找到了多少步從根(穀物圈早餐麥片),每一個組件都是路程。
所以Corn Flour Blend
將是1
一步之遙,而Whole Grain Yellow Corn Flour
將2
步驟。
我對cypher實現或python實現感到滿意。或者,兩者的結合。
一些注意事項:
- 我在圖形數據的完全控制,並且它的方式是標準化的(上圖)。我想盡可能地保持這一點,但我可以調整它
- 性能很重要,但這些圖都不會很大。我會感到驚訝,如果(總)的任何產品有200多個組件(在任何深度)
- 我很高興能有第三方庫,如果任何人一個
- 我只是擔心
USES_COMPONENT
關係的人都知道,那永遠不會是循環的。無論你走多遠你遵循USES_COMPONENT
路徑,它永遠不會打Froot循環。
我很感謝大家的幫助。我甚至不完全確定要谷歌什麼,所以如果我錯過了一些明顯的東西,鏈接將不勝感激。
您需要整個路徑還是與根距離足夠的節點? –
距離的節點應該沒問題。我只需要弄清楚「全麥黃玉米粉」距離酒店僅有2步之遙。 – Apollo