我有圖(見下圖)。我使用A中的gremlin並且需要沿着「影響」和「類似到」邊緣循環所有樹。Gremlin循環遍歷各個邊緣方向
所以我需要的東西,如:
g.v(A.id).out('impacts', 'similarTo').loop(1){it.loops < 4}{true}
該查詢的問題,即關係「性相似」,可有時候部邊緣,有時在邊緣(見圖表),取決於如何存儲應用數據。我不能簡單地使用「both」(g.v(A.id).both('impact','similarTo')...)來檢索邊緣,因爲我只需要邊緣來處理「影響」關係。也有可能,對某些頂點(例如C)缺少「類似到」邊緣,在這種情況下,循環只應遵循「影響」關係。
最後我想這樣的事情,但我想我使用它錯,結果是不恰當的:
g.v(A.id).as('x').copySplit(_().out('impacts'), _().both('similarTo')).fairMerge.loop('x'){it.loops < 4}{true}
我也試圖穿越期間過濾通過方向的邊緣,但它可能不支持,所以這也不起作用:
g.v(A.id).as('x').bothE.filter{((it.label=='impacts' & it.direction=='out') || it.label=='similarTo')}.bothV.loop('x'){it.loops < 4}{true}
有什麼建議嗎?