簡體   English   中英

使用Cypher識別圖中的周期(包含2個節點,3個節點…n個節點)

[英]Identify cycles in the graph (containing 2 nodes, 3 nodes…n nodes) using Cypher

我想確定圖中的所有周期。 我想要一些查詢,它會給我2個節點之間的周期,另一個查詢會給我3個節點之間的周期...直到n個節點。

我嘗試了一些查詢,但是我不知道如何僅顯示2個節點的周期,然后僅顯示3個節點的周期。 相反,我可以顯示所有周期。

MATCH
  (m1:Disease)-[]->(m2:Disease),
  cyclePath=shortestPath((m2)-[*1..10]->(m1))
WITH
  m1, nodes(cyclePath) as cycle
WHERE id(m1) = apoc.coll.max([node in cycle | id(node)])
RETURN m1.id, cycle ;

我希望有更多的查詢,這將只給我2個節點的周期,然后是3個節點... n個節點(直到確定了最大周期)。

這是獲取長度為2的所有周期的非常簡單的方法:

MATCH p=(m1:Disease)-[*2]->(m1)
RETURN NODES(p) AS cycle

要獲得其他長度的循環,只需將查詢中的2替換為所需的長度即可。

注意:此查詢可以多次返回相同的節點循環,但是具有不同的開始/結束節點。 例如1-> 2-> 1和2-> 1-> 2。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM