在使用Gremlin/Tinkerpop 3的fluent api以文本形式而不是步骤列表形式打印查询之后,有什么方法吗?
现在我知道,如果我打印图形遍历,它将显示数组中的步骤。我很好奇,不知何故,是否可以将原始的Gremlin查询打印为字符串在使用Gremlin/Tinkerpop 3的fluent api以文本形式而不是步骤列表形式打印查询之后,有什么方法吗?,gremlin,Gremlin,现在我知道,如果我打印图形遍历,它将显示数组中的步骤。我很好奇,不知何故,是否可以将原始的Gremlin查询打印为字符串 谢谢大家! 对于每个Gremlin语言变体,都有一个Translator.ScriptTranslator实现,它接受Gremlin字节码并将其写入字符串。对于gremlin groovy,您将使用GroovyTranslator,如下所示: gremlin> GroovyTranslator ==>class org.apache.tinkerpop.greml
谢谢大家! 对于每个Gremlin语言变体,都有一个Translator.ScriptTranslator实现,它接受Gremlin字节码并将其写入字符串。对于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")
嗨,斯蒂芬!为什么遍历中没有任何getByteCode?是因为它是Tinkerpop的旧版本,还是因为它是版本3的旧功能?我将3.2.3与Java一起使用,我看到GraphTraversal源返回的GraphTraversal没有getByteCode,而DefaultGraphTraversal有getByteCode。。有没有一种方法可以在Java中使用DefaultGraphTraversal;我仍然在打印输出中得到步骤,而不是实际的Gremlin查询。。甚至对Java实际有效的是:org.apache.tinkerpop.gremlin.groovy.jsr223.GroovyTranslator.ofg.toString.translatedFaultGraphTraversalTraversal.getByteCode只是澄清一下——getByteCode在Traversal.Admin上,所以它有点隐藏。因此,如果没有Traversal.Admin实例,则必须执行类似于g.V.asAdmin.getByteCode的操作。