我是新手,需要找到与org.apache.tinkerpop.gremlin.tinkergraph.structure.类似的产品TinkerGraph使用gremlin方法遍历嵌入的图形,而无需连接到图形数据库.

我已经找到了满足我需求的Gremlin-Go(github.com/apache/tinkerpop/gremlin-go/v3/driver),,只是它需要连接到Gremlin服务器.有没有办法在不连接到服务器的情况下初始化GraphTraversalSource,就像在Java版本中通过下面的代码所做的那样?

Graph graph = TinkerGraph.open();
GraphTraversalSource g = traversal().withEmbedded(graph);

我试过以下几种方法:

package main

import (
   "fmt"
   gremlingo "github.com/apache/tinkerpop/gremlin-go/v3/driver"
)

func main() {
   graph := gremlingo.Graph{}
   gts := gremlingo.NewGraphTraversalSource(&graph, nil, gremlingo.ReadOnlyStrategy())
   prop := &gremlingo.GremlinType{"java.lang.Object"}
   gts.AddV("type_test").Property("data", prop).Iterate()
   cnt, _ := gts.V().Count().ToList()
   val, _ := cnt[0].GetInt32()
   fmt.Println(val)
}

但超出边界例外,这意味着没有添加顶点.有没有办法在本地创建图形,然后遍历它?

推荐答案

不,这是不可能的.gremlin-go不是Gremlin查询处理引擎的实现,它也不像Java那样公开接口来实现图形数据库.与所有非基于JVM的Gremlin实现一样,它将处理委托给具有这些功能的Gremlin服务器.

Go相关问答推荐

如何使用GRPC UnaryClientInterceptor中的`maily`参数?

Go在使用HTTP代理时如何处理DNS请求?

[0]Func()as";请勿比较哨兵类型

如何在v2 Go SDK中使用KeyConditionExpression查询AWS DynamoDb?

在运行时更改 Go lang slog 的日志(log)级别

Golang 网络应用程序安全性:您是否应该判断输入是否为有效的 utf-8?

有没有办法计算枚举中定义的项目总数?

创建新对象后如何返回嵌套实体?

Gorm 预加载给出了模糊的列错误

如何使用 Docker 引擎 SDK 和 Golang 运行 docker 挂载卷

如何根据 Go 中第二次出现的分隔符拆分字符串?

使用无服务器工作流 go sdk 时出现间歇性 JSON 解组错误

如何在 GORM 中获取字段值

vs 代码调试 go 测试不通过标志

Ginkgo/Gomega panic 测试失败

当 git clone 工作时,Go mod tidy 在私有存储库上失败

为什么 go.mod 中的所有依赖都是间接的?

什么是无效字符实体 &ccb

函数的递归调用以 goroutine 和惯用方式开始,以在所有工作 goroutine 完成时继续调用者

Go 泛型是否与 LINQ to Objects 等效?