这似乎是 Apache TinkerPop 中的一个错误。我打开了一个问题来跟踪这个。
一种解决方法是将远程驱动程序配置配置为使用 GraphSON 序列化程序而不是 Gryo。这不需要对服务器配置进行任何更改。例如,在conf/remote-objects.yaml
:
hosts: [localhost]
port: 8182
serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerGremlinV2d0,
config: { ioRegistries: [org.janusgraph.graphdb.tinkerpop.JanusGraphIoRegistry] } }
另一种解决方法是在 Gremlin 服务器脚本中定义另一个遍历源。例如,如果您使用默认值conf/gremlin-server/gremlin-server.yaml
,请更新以下中的全局绑定scripts/empty-sample.groovy
:
// define the default TraversalSource to bind queries to - named "g".
// define a subgraph traversal source - named "sg"
globals << [g : graph.traversal(),
sg: graph.traversal().withStrategies(SubgraphStrategy.build().edges(
__.has("field", "condition")).create())]
然后,您可以利用远程驱动程序中的遍历源:
cluster = Cluster.open('conf/remote-objects.yaml')
graph = EmptyGraph.instance()
sg = graph.traversal().withRemote(DriverRemoteConnection.using(cluster, "sg"))