在使用 Gremlin/Tinkerpop 3 的流利 api 之后,有没有办法以文本而不是步骤列表打印查询?
Is there a way after using the fluent api of Gremlin/Tinkerpop 3 to print the query in text instead of list of steps?
现在我知道,如果我打印图形遍历,它会显示数组中的步骤。我很好奇是否有可能以某种方式将原始 Gremlin 查询打印为字符串。
谢谢!
对于每个 Gremlin 语言变体,都有一个 Translator.ScriptTranslator
实现,它采用 Gremlin Bytecode
并将其写入字符串。对于 gremlin-groovy
,您将使用 GroovyTranslator
,如下所示:
gremlin> GroovyTranslator
==>class org.apache.tinkerpop.gremlin.groovy.jsr223.GroovyTranslator
gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> bytecode = g.V().out('knows').in('created').getBytecode()
==>[[], [V(), out(knows), in(created)]]
gremlin> GroovyTranslator.of('g').translate(bytecode)
==>g.V().out("knows").in("created")
现在我知道,如果我打印图形遍历,它会显示数组中的步骤。我很好奇是否有可能以某种方式将原始 Gremlin 查询打印为字符串。
谢谢!
对于每个 Gremlin 语言变体,都有一个 Translator.ScriptTranslator
实现,它采用 Gremlin Bytecode
并将其写入字符串。对于 gremlin-groovy
,您将使用 GroovyTranslator
,如下所示:
gremlin> GroovyTranslator
==>class org.apache.tinkerpop.gremlin.groovy.jsr223.GroovyTranslator
gremlin> graph = TinkerFactory.createModern()
==>tinkergraph[vertices:6 edges:6]
gremlin> g = graph.traversal()
==>graphtraversalsource[tinkergraph[vertices:6 edges:6], standard]
gremlin> bytecode = g.V().out('knows').in('created').getBytecode()
==>[[], [V(), out(knows), in(created)]]
gremlin> GroovyTranslator.of('g').translate(bytecode)
==>g.V().out("knows").in("created")