【问题标题】:ScriptEvalutionError : For Input string "" : When supplying a string as IDScriptEvalutionError:对于输入字符串“”:提供字符串作为 ID 时
【发布时间】:2019-07-11 09:22:04
【问题描述】:

我已经在我的开发机器上为 tinkerpop/gremlin-server 设置了一个 docker 容器。

我有一个使用 Gremlin.Net 3.4.1 版的 .NET Core 应用程序

我使用 IRemlinClient 连接到 localhost docker,并在传递以下查询以添加顶点时:

g.addV("Root").property(id,"56b7ddc6-7629-42d4-b748-bfbce0992f13")

然后我得到错误:

ScriptEvaluationError: For input string: "56b7ddc6-7629-42d4-b748-bfbce0992f13"

当我使用 gremlin 控制台运行查询时,会添加顶点:

gremlin> g.addV("Root").property(id,"56b7ddc6-7629-42d4-b748-bfbce0992f13")
==>v[56b7ddc6-7629-42d4-b748-bfbce0992f13]

在我的应用程序中通过 IGremlinClient 运行时,如何使用字符串作为 Id 创建一个新顶点?

【问题讨论】:

  • 您是否使用默认(即没有配置更改)tinkerpop/gremlin-server docker 容器?
  • 是的,我是。我没有进行任何配置更改

标签: gremlin gremlin-server tinkergraph


【解决方案1】:

由于您使用的是默认 Gremlin Server Docker 容器,因此您会为托管的 TinkerGraph 获得此 configuration:

gremlin.graph=org.apache.tinkerpop.gremlin.tinkergraph.structure.TinkerGraph
gremlin.tinkergraph.vertexIdManager=LONG

IdManager 设置为LONG,因此它只接受可以强制为long 的输入值。您应该将该设置更改为UUID,也许给定您要发送的字符串或ANY。您可以阅读有关这些选项的更多信息here。

作为旁注,我同意错误消息没有帮助。请注意,对于 3.4.3/3.3.8 的下一个版本,它一直是 improved。

【讨论】:

  • 为我的 docker 容器执行此操作的步骤是什么?
  • 创建一个新的Dockerfile,使用 TinkerPop 的 Docker 镜像作为基础,添加一个覆盖配置文件的步骤,并最终使用您的自定义镜像启动一个新容器。
猜你喜欢
  • 1970-01-01
  • 2019-05-17
  • 1970-01-01
  • 2018-04-01
  • 2014-11-14
  • 2013-05-13
  • 2012-12-05
  • 2013-09-04
  • 1970-01-01
相关资源
最近更新 更多