Groovy 用户定义的gremlin步骤适用于gremlin,但不适用于rexster

Groovy 用户定义的gremlin步骤适用于gremlin,但不适用于rexster,groovy,gremlin,rexster,Groovy,Gremlin,Rexster,我试图确定rexster处理用户定义的Gremlin查询的方式与Gremlin shell相比似乎存在差异的原因 我正在使用: rexster-server-2.6.0 gremlin-groovy-2.5.0 orientdb-community-1.7.9 我已经加载了一个表示简单层次结构树的图形。每个节点都有一条标记为“父节点”的边,该边指向其父节点。这是一只狗 我在Gremlin中定义了一个(通过its加载到rexster中)如下: Gremlin.defineStep('ch

我试图确定rexster处理用户定义的Gremlin查询的方式与Gremlin shell相比似乎存在差异的原因

我正在使用:

  • rexster-server-2.6.0
  • gremlin-groovy-2.5.0
  • orientdb-community-1.7.9
我已经加载了一个表示简单层次结构树的图形。每个节点都有一条标记为“父节点”的边,该边指向其父节点。这是一只狗

我在Gremlin中定义了一个(通过its加载到rexster中)如下:

   Gremlin.defineStep('children', 
      [Vertex, Pipe], 
      {int depth ->  _().out('parent').loop(1) 
        {it.loops < depth} 
        {it.object != null} 
    })
但是,如果我启动gremlin.sh,连接到我的图形,定义步骤并执行它,它将完美工作:

gremlin> Gremlin.defineStep('children', [Vertex, Pipe], {int depth -> _().out('parent').loop(1){it.loops < depth}{it.object != null}})
==>null
gremlin> sg=new OrientGraph('remote:localhost/scratch')                                                                               
==>orientgraph[remote:localhost/scratch]
gremlin> sg.V('type','LSNetwork').children(3).name
==>Spine 0
==>Spine 1
==>Leaf 0
==>Leaf 1
==>Leaf 2
==>Leaf 3
gremlin>gremlin.defineStep('children',[Vertex,Pipe],{int depth->().out('parent').loop(1){it.loops空
gremlin>sg=new-OrientGraph('remote:localhost/scratch')
==>orientgraph[远程:本地主机/暂存]
gremlin>sg.V('type','LSNetwork')。子对象(3)。名称
==>脊椎0
==>脊椎1
==>叶0
=>叶1
=>叶2
==>叶3
(注意:名称是正确的,我希望看到)

为什么我的gremlin脚本是从gremlin控制台运行的,而不是通过Bulls/rexster


提前感谢您,我们非常感谢您提供的任何帮助、见解或指向适当文档的指针。

当使用文档中定义的
CodeDeveloper
步骤版本时,我对此没有任何问题:

$ curl "http://localhost:8182/graphs/tinkergraph/tp/gremlin?script=g.v(1).codeveloper.name"
{"success":true,"results":["josh","peter"],"version":"2.5.0","queryTime":39.294181}
似乎也在狗屋工作。我最好的猜测是雷克斯特没有找到剧本。您确定
设置的路径正确吗?如果正确指定并加载了初始化脚本,则应该看到此日志条目:

[INFO] EngineHolder - ScriptEngine initializing with a custom script

只有启动
ScriptEngine
后,您才会看到它。只有对它发出请求(如上面的curl命令),才会看到它。

这很可能是问题的原因。但是,我无法成功加载init.groovy脚本。我怀疑存在基本配置问题。我已经转移了话题。
[INFO] EngineHolder - ScriptEngine initializing with a custom script