Gremlin 连接组件一一打印
Gremlin connected components prints one by one
我是 gremlin QL 的新手,我需要在巨大的图形上生成连接的组件。我尝试了以下查询,但它作为一组值打印,但我需要一个一个地打印。
连接组件查询:
g.V().emit(cyclicPath().or().not(both())).repeat(both()).until(cyclicPath()).path().aggregate("p").unfold().dedup().map(__.as("v").select("p").unfold().filter(unfold().where(eq("v"))).unfold().dedup().order().by(id).fold()).dedup()
[v[89826185]]
[v[89826188], v[89826189], v[89826190], v[89826191], v[89826192], v[89826193], v[89826194]]
[v[89826195], v[89826196], v[89826198]]
我需要像下面这样打印值。
group(list) 的最小 id 到 group(list) 的每个元素。
例如:
89826188 89826189
89826188 89826190
89826188 89826191
89826188 89826192
89826188 89826193
89826188 89826194
89826188 89826188 (self)
您可以在您的应用程序代码中执行此操作。在查询级别执行此操作只会增大结果大小,但在这里:
g.V().
emit(cyclicPath().or().not(both())).
repeat(both()).
until(cyclicPath()).
path().aggregate("p").
unfold().dedup().
map(__.as("v").select("p").unfold().
filter(unfold().where(eq("v"))).
unfold().dedup().
order().
by(id).
fold()).
dedup().as("list").
unfold().
map(union(select("list").
by(limit(local, 1)),
identity()).
id().fold())
基本上是相同的查询,我只是添加了最后的 map()
步骤来重新格式化结果。
我是 gremlin QL 的新手,我需要在巨大的图形上生成连接的组件。我尝试了以下查询,但它作为一组值打印,但我需要一个一个地打印。
连接组件查询:
g.V().emit(cyclicPath().or().not(both())).repeat(both()).until(cyclicPath()).path().aggregate("p").unfold().dedup().map(__.as("v").select("p").unfold().filter(unfold().where(eq("v"))).unfold().dedup().order().by(id).fold()).dedup()
[v[89826185]]
[v[89826188], v[89826189], v[89826190], v[89826191], v[89826192], v[89826193], v[89826194]]
[v[89826195], v[89826196], v[89826198]]
我需要像下面这样打印值。 group(list) 的最小 id 到 group(list) 的每个元素。
例如:
89826188 89826189
89826188 89826190
89826188 89826191
89826188 89826192
89826188 89826193
89826188 89826194
89826188 89826188 (self)
您可以在您的应用程序代码中执行此操作。在查询级别执行此操作只会增大结果大小,但在这里:
g.V().
emit(cyclicPath().or().not(both())).
repeat(both()).
until(cyclicPath()).
path().aggregate("p").
unfold().dedup().
map(__.as("v").select("p").unfold().
filter(unfold().where(eq("v"))).
unfold().dedup().
order().
by(id).
fold()).
dedup().as("list").
unfold().
map(union(select("list").
by(limit(local, 1)),
identity()).
id().fold())
基本上是相同的查询,我只是添加了最后的 map()
步骤来重新格式化结果。