1
我有可以發送一個或多個協議(TCP,UDP和FTP)並可以接收一個或多個協議的實體(例如A,B,C),如圖所示下面。Neo4j查找所有返回到同一節點的路徑
我想創建一個密碼查詢,它將查找從給定實體返回到同一實體的所有可能路徑,並根據跳數從最短路徑排序到最長路徑。
可在網上neo4j Console進行測試,使用下面的命令創建腳本:
create (a:Entity {name:'A'}),
(b:Entity {name: 'B'}),
(c:Entity {name: 'C'}),
(d:Entity {name: 'D'}),
(tcp:Protocol {name: 'TCP'}),
(ftp:Protocol {name: 'FTP'}),
(udp:Protocol {name: 'UDP'}),
(a)-[:SEND]->(tcp), (tcp)-[:SEND]->(b), (tcp)-[:SEND]->(d), (b)-[:SEND]->(ftp), (ftp)-[:SEND]->(c), (ftp)-[:SEND]->(d),
(d)-[:SEND]->(udp), (c)-[:SEND]->(udp), (udp)-[:SEND]->(a)
確保您單擊清除DB頂部欄第一
您可以通過消除'WITH'子句並將緊接着的'RETURN'子句更改爲:'RETURN path,relations,length(path)/ 2-1 AS hops'來縮短查詢。 – cybersam
謝謝,我已經更新了答案。 –