我们目前在 net core 3.0 应用程序中使用 gremlin.net 库来连接到 Janusgraph db。
我们需要在 janusgraph 中执行以下查询g.V('12345').outE('myedge').has('datetime',lt(1581922847)).order().by('datetime', incr).limit(100).valueMap().as('time').inV().as('user').select('time','user')
只要我们没有,查询就可以正常运行inV()
部分。如果我们有inV()
,我们面临以下错误,ScriptEvaluationError: java.util.LinkedHashMap cannot be cast to org.apache.tinkerpop.gremlin.structure.Edge
- 有没有办法运行/重写这个查询而不将其分成两个?我是 janusgraph 的新手,这在 Cosmos db 中工作得很好。
- As per 堆栈溢出 https://stackoverflow.com/questions/48239255/gremlin-net-system-invalidoperationexception-deserializer-for-janusgraphrela,我了解 janusgraph 中涉及自定义反序列化。我尝试过,但仍然对我没有帮助。有人可以发布一个在 .net core 3.0 中添加自定义反序列化的工作代码吗?
举一个更简单的例子,查询g.V(1).as('v').outE().limit(1).as('e').select('v','e')
直接在 gremlin 控制台中工作,但不能与gremlin.net
janusgraph 的库(groovy-string)。我们在服务器中尝试了 GRYO 和 GraphSON 序列化器设置。我们可以使用 groovy-string,因为这是一个现有的应用程序。
只要我们没有 inV() 部分,查询就可以正常运行。如果我们有 inV(),我们将面临以下错误,ScriptEvaluationError
你不能有inV()
因为它遵循valueMap()
. inV()
是为了遍历Edge
反对其传入Vertex
, but valueMap()
转换为Edge
to a Map
因此,您会收到以下错误:“java.util.LinkedHashMap 无法转换为 org.apache.tinkerpop.gremlin.struction.Edge”
我想你只是想要:
g.V('12345').
outE('myedge').has('datetime',lt(1581922847)).
order().by('datetime', incr).
limit(100).
project('time','user').
by(valueMap()).
by(inV())
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)