使用 Gremlin.Net 获取请求数据
Getting request data with Gremlin.Net
我正在使用 Gremlin.Net & Neptune,有时一些请求会失败,错误消息中没有太多信息 (InternalFailureException)。
我想尝试通过 curl 将请求发送到服务器的“/gremlin/explain”URL 以获取更多信息。
由于我使用 GraphTraversal class 构建请求(而且它很长),我正在寻找一种方法来获取与发送的请求等效的 gremlin 命令。
有什么简单的方法可以得到吗?
有没有其他方法可以理解 Neptune 请求失败的原因?
我假设您希望获得查询的字符串表示形式,以便您可以 POST 将其 /gremlin/explain
API。使用 Java 和 Javascript 可以相当直接地使用 . Of course, for .NET and Python such things 描述的 TinkerPop 的 Translator
函数来完成这样的事情。
由于您的情况听起来您只需要一个一次性解决方案来使用 "explain" 进行一些分析,您可以获得 .NET 中字节码的 GraphSON 表示,使用 Gremlin Console's :bytecode
command 将其转换到 String
表示。
所以,首先获取 Bytecode
对象作为 GraphSON:
var bytecode = g.V().Out("knows").Bytecode;
var writer = new GraphSON3Writer();
var graphSON = writer.WriteObject(bytecode)
Copy/paste "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.Net & Neptune,有时一些请求会失败,错误消息中没有太多信息 (InternalFailureException)。
我想尝试通过 curl 将请求发送到服务器的“/gremlin/explain”URL 以获取更多信息。
由于我使用 GraphTraversal class 构建请求(而且它很长),我正在寻找一种方法来获取与发送的请求等效的 gremlin 命令。
有什么简单的方法可以得到吗?
有没有其他方法可以理解 Neptune 请求失败的原因?
我假设您希望获得查询的字符串表示形式,以便您可以 POST 将其 /gremlin/explain
API。使用 Java 和 Javascript 可以相当直接地使用 Translator
函数来完成这样的事情。
由于您的情况听起来您只需要一个一次性解决方案来使用 "explain" 进行一些分析,您可以获得 .NET 中字节码的 GraphSON 表示,使用 Gremlin Console's :bytecode
command 将其转换到 String
表示。
所以,首先获取 Bytecode
对象作为 GraphSON:
var bytecode = g.V().Out("knows").Bytecode;
var writer = new GraphSON3Writer();
var graphSON = writer.WriteObject(bytecode)
Copy/paste "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 作为重建遍历的主机。