【问题标题】:Gremlin Java 3.4 withRemote deprecatedGremlin Java 3.4 withRemote 已弃用
【发布时间】:2019-08-16 13:27:05
【问题描述】:

所以在 gremlin java 3.4 之前,我使用以下代码连接到远程图:

Cluster.Builder builder = Cluster.build();
builder.addContactPoint(GREMLIN_SERVER);
builder.port(GREMLIN_PORT);
builder.serializer(new GryoMessageSerializerV1d0());
cluster = builder.create();
g = EmptyGraph.instance().traversal().withRemote(DriverRemoteConnection.using(cluster, GRAPH_NAME));
return g;

我已将 JanusGraph 更新到版本 0.4.0 并尝试使用 gremlin java 3.4.3,我发现每个 withRemote 方法现在都已弃用。

gremlin 服务器配置为使用 JanusGraphManager 和 ConfigurationManagementGraph。并在启动时运行以下脚本:

def globals = [:]


def getGraph() {
    def graphNames =  ConfiguredGraphFactory.getGraphNames();
    def graphMaps = [:];
    for (graphName in graphNames) {
        def g = ConfiguredGraphFactory.open(graphName);
        graphMaps.put(graphName, g.traversal())
    }
    return graphMaps;
}

globals << getGraph()

我似乎找不到从 java 获取遍历源的新正确方法。

【问题讨论】:

    标签: gremlin janusgraph gremlin-server


    【解决方案1】:

    在升级图形数据库依赖项时,查看 TinkerPop 升级文档总是很有帮助的。 TinkerPop 通常会尝试指出弃用和修改的做事方式。在您的情况下,升级文档中的这一点 here 就是您所需要的。具体来说,您需要使用新的AnonymousTraversalSource 而不是EmptyGraph 来生成您的GraphTraversalSource

    GraphTraversalSource g = traversal().withRemote('conf/remote-graph.properties');
    

    请注意,javadoc 也会帮助您指明这个方向。

    【讨论】:

    • 你一如既往地乐于助人,斯蒂芬。我确实查看了升级文档,但没有查看您链接的文档。在我发现的一个中没有提到 AnonymousTraversalSource,感谢您指出这一点。
    • @stephen 我也遇到了同样的问题。您的建议帮助我更进一步,但现在我只引用了一个 graphTraversal 对象。如果我还需要图形对象怎么办?
    • 您无法通过远程遍历远程访问Graph 对象。如果你需要这样做,那么你需要发送一个 Gremlin 脚本而不是字节码,而且只有你的图形数据库支持这种功能。
    猜你喜欢
    • 2015-11-05
    • 2022-07-10
    • 1970-01-01
    • 2021-02-21
    • 1970-01-01
    • 2021-12-25
    • 2018-09-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多