簡體   English   中英

Tinkerpop / Gremlin廣度第一次遍歷

[英]Tinkerpop/Gremlin Breadth first traversal

我正在嘗試遍歷圖以跟蹤特定節點的沿襲。 我希望我的查詢以廣度優先的模式產生該節點的先例。 注意,每個節點可以有多個父節點。 Graph可以深很多層,我想查看給定節點的所有級別的結果。 我正在嘗試遵循食譜,但是遇到了例外:沒有這樣的屬性:收集。 我正在gremlin控制台版本3.3上嘗試此操作

使用barrier()步驟( Apache TinkerPop 3.3 docs )。 例如:

gremlin> g.V().sideEffect{println "first: ${it}"}.barrier().sideEffect{println "second: ${it}"}.iterate()
first: v[1]
first: v[2]
first: v[3]
first: v[4]
first: v[5]
first: v[6]
second: v[1]
second: v[2]
second: v[3]
second: v[4]
second: v[5]
second: v[6]

Stephen在此gremlin-users帖子中對BFS作了另一個很好的描述。

首先,我們假設沒有優化的Gremlin語言-執行以下操作:

gV().out().out()

將導致深度優先搜索。 您可以使用barrier()強制BFS:

gV().out().barrier().out()

這基本上會迫使步驟先排空,然后再繼續進行下一步。

暫無
暫無

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

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