gpt4 book ai didi

janusgraph - 如何在我的程序中创建 Janusgraph 实例以访问自定义图形

转载 作者:行者123 更新时间:2023-12-05 03:07:19 47 4
gpt4 key购买 nike

JanusGraph:我使用 ConfiguredGraphFactory 创建了一个自定义图形,并且能够使用 gremlin 控制台访问该图形。我如何从我的 Scala 代码访问这个图表?

目前我正在运行一个远程 gremlin 服务器并从我的代码连接到这个远程服务器以在我的自定义图表上执行交易。我想知道是否有任何方法可以在我的程序中创建一个 janusgraph 实例并访问该图而不是通过远程服务器。

Janus 图版本:0.2.0

最佳答案

目前,在 TinkerPop 兼容系统中,您无法实例化作用于远程图形引用的本 map 形引用。但是,您可以使用 withRemote实例化由远程图遍历引用支持的本 map 遍历对象:

gremlin> cluster = Cluster.open('conf/remote-objects.yaml')
==>localhost/127.0.0.1:8182
gremlin> graph = EmptyGraph.instance()
==>emptygraph[empty]
gremlin> g = graph.traversal().withRemote(DriverRemoteConnection.using(cluster, "g"))
==>graphtraversalsource[emptygraph[empty], standard]
gremlin> g.V().valueMap(true)
==>[name:[marko],id:1,label:person,age:[29]]
==>[name:[vadas],id:2,label:person,age:[27]]
==>[name:[lop],id:3,label:software,lang:[java]]
==>[name:[josh],id:4,label:person,age:[32]]
==>[name:[ripple],id:5,label:software,lang:[java]]
==>[name:[peter],id:6,label:person,age:[35]]
==>[name:[matthias],id:13,label:vertex]
gremlin> g.close()
gremlin> cluster.close()

但是,由于您使用的是 ConfiguredGraphFactory,因此我假设您的图表是动态创建的。这意味着您的图形和遍历对象未绑定(bind)到远程服务器上的任何变量名称,因为这些绑定(bind)传统上是在图形实例化期间形成的,定义了您的 gremlin-server.yaml 图形 {} 对象。正如您在上面看到的,使用 withRemote 的唯一方法是提供绑定(bind)到远程服务器上的图遍历的变量的名称。 JanusGraph 目前不支持动态更新服务器的全局绑定(bind),但是一旦支持,您将能够使用 withRemote 方法获取对远程遍历对象的本地引用。如果您需要使用绑定(bind)到远程图形引用的本 map 形对象,则需要与 TinkerPop 社区合作以启用此类功能。有关此事的更多信息,请参阅this TinkerPop Jira .

另一种解决方案是删除远程 JanusGraph 服务器层。如果您希望在本地运行图形处理,那么您可能根本不需要远程 JanusGraph 服务器。然后,您可以使用 JanusGraphFactory 实例化图形引用,并对直接与后端数据存储对话的本 map 形引用执行查询。

最后,假设您配置了远程 JanusGraph 服务器和后端数据存储(即您知道如何配置远程 JanusGraph 服务器以与后端数据存储通信——这将是保存在您的 ConfigurationManagementGraph 中的配置),您可以离开单独使用您的远程 JanusGraph 服务器,并通过使用 JanusGraphFactory 打开一个属性文件来实例化本 map 形引用,该属性文件的配置与 ConfigurationManagementGraph 定义的图形的配置相同。

关于janusgraph - 如何在我的程序中创建 Janusgraph 实例以访问自定义图形,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47793081/

47 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com