使用Gremlin.Net获取请求数据

使用Gremlin.Net获取请求数据,gremlin,amazon-neptune,gremlinnet,Gremlin,Amazon Neptune,Gremlinnet,我正在使用Gremlin.Net和Neptune,有时一些请求会失败,而错误消息中没有太多信息(InternalFailureException)。 我想尝试通过curl将请求发送到服务器的“/gremlin/explain”URL以获取更多信息。 由于我使用GraphTraversal类(它非常长)构建请求,因此我正在寻找一种方法来获取与发送的请求相同的gremlin命令。 有什么简单的方法可以得到它吗? 有没有其他方法可以理解为什么海王星没有通过这个请求 我假设您希望获取查询的字符串表示形式

我正在使用Gremlin.Net和Neptune,有时一些请求会失败,而错误消息中没有太多信息(InternalFailureException)。
我想尝试通过curl将请求发送到服务器的“/gremlin/explain”URL以获取更多信息。
由于我使用GraphTraversal类(它非常长)构建请求,因此我正在寻找一种方法来获取与发送的请求相同的gremlin命令。
有什么简单的方法可以得到它吗?

有没有其他方法可以理解为什么海王星没有通过这个请求

我假设您希望获取查询的字符串表示形式,以便将其发布到
/gremlin/explain
API。使用Java和Javascript,可以通过TinkerPop的
Translator
函数直接实现这一点。当然,对于.NET和Python之类的东西

由于您的情况听起来好像只需要一个一次性的解决方案来使用“explain”进行一些分析,因此您可以获得.NET中字节码的GraphSON表示形式,使用它将其转换为
字符串
表示形式

因此,首先获取
字节码
对象,如图所示:

var bytecode = g.V().Out("knows").Bytecode;
var writer = new GraphSON3Writer();
var graphSON = writer.WriteObject(bytecode)
将“graphSON”字符串复制/粘贴到Gremlin控制台:

gremlin> g = TinkerGraph.open().traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> :bytecode translate g {"@type":"g:Bytecode","@value":{"step":[["V"],["out","knows"]]}}
==>g.V().out("knows")

请注意,我使用TinkerGraph作为主机来重建遍历

我假设您希望获取查询的字符串表示形式,以便将其发布到
/gremlin/explain
API。使用Java和Javascript,可以通过TinkerPop的
Translator
函数直接实现这一点。当然,对于.NET和Python之类的东西

由于您的情况听起来好像只需要一个一次性的解决方案来使用“explain”进行一些分析,因此您可以获得.NET中字节码的GraphSON表示形式,使用它将其转换为
字符串
表示形式

因此,首先获取
字节码
对象,如图所示:

var bytecode = g.V().Out("knows").Bytecode;
var writer = new GraphSON3Writer();
var graphSON = writer.WriteObject(bytecode)
将“graphSON”字符串复制/粘贴到Gremlin控制台:

gremlin> g = TinkerGraph.open().traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> :bytecode translate g {"@type":"g:Bytecode","@value":{"step":[["V"],["out","knows"]]}}
==>g.V().out("knows")
请注意,我使用TinkerGraph作为主机来重建遍历