向所有人致意!使用Cypher遍歷圖並將結果集作爲表格
我用的Neo4j和Cypher支架一個初學者,有下列功能的問題:
我有節點的非循環有向圖是與
連接:DATA_FLOWS
邊緣有可能是兩個節點之間有多個邊緣,因爲這些邊緣可能具有不同的邊緣屬性 - scenario_id
當我按組選擇一個或多個節點並嘗試按一個或多個s cenario_id(邊緣屬性)我希望看到一定深度的依賴於我的選擇和邊緣濾波器
我使用下面的查詢所有相關的節點(* .. N):
match p= (src:Node)-[:DATA_FLOWS*..5]->(dst:Node) where src.group_id IN {Group} and all(x in RELATIONSHIPS(p) WHERE x.scenario_id IN {Scenario}) RETURN p;
這看起來OK在Neo4j的瀏覽器呈現在一個不錯的視覺方式的結果,但我需要運行在湯姆·索亞視野,這預計平表樣的結果集,而不是Json的此查詢...
因此,我的查詢,經過太多不成功的嘗試,看起來像:
match p= (src:Node)-[:DATA_FLOWS*..5]->(dst:Node) where src.group_id IN {Group} and all(x in RELATIONSHIPS(p) WHERE x.scenario_id IN {Scenario}) WITH p MATCH (a)-[r:DATA_FLOWS]->(b) where all(x in RELATIONSHIPS(p) WHERE ID(x) = ID(r)) RETURN a.id, r.scenario_id, b.id
- 我不認爲它帶來正確的結果,這是非常緩慢...
我將不勝感激,如果有人爲我提供了關於如何提高任何建議,改寫等這個查詢,並得到一個更好的性能。
謝謝你在前進, 弗拉德
非常感謝您的建議。我現在會嘗試使用JDBC驅動程序。在與Tom Sawyer Perspectives團隊交談之後,我瞭解到在未來的軟件版本中,他們將能夠與Json一起工作,而不僅僅是表格數據集。 –