【问题标题】:Getting request data with Gremlin.Net使用 Gremlin.Net 获取请求数据
【发布时间】:2020-05-12 03:17:34
【问题描述】:

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

【问题讨论】:

    标签: gremlin amazon-neptune gremlinnet


    【解决方案1】:

    我假设您想要获取查询的字符串表示形式,以便您可以将其发布到/gremlin/explain API。使用 Java 和 Javascript,可以直接使用 TinkerPop 的 Translator 函数在 here 中进行描述。当然,对于 .NET 和 Python 之类的东西 don't exist yet

    由于您的情况听起来您只需要一个一次性解决方案来使用“解释”进行一些分析,您可以在 .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)
    

    将该“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 作为主机来重建遍历。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-05-23
      • 2017-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-11-15
      相关资源
      最近更新 更多