0
在小鬼如下我可以定义一个函数:如何在Gremlin过滤器中使用自定义函数?
def name_is_potato (v) { return v.has('name','potato').count() == 1}
当我打电话
name_is_potato(g.V[0])
我得到
==>true
但是,当我进入
g.V[0].filter{name_is_potato(it)}
我得到
==>java.lang.StackOverflowError
这是怎么回事?我怎样才能让它运行? 我使用Rexster的狗窝网页界面。
当我想写一个函数时,遇到了这个问题,如果在给定顶点的某条线的任何地方有任何顶点,就返回true。 尽管我对这个问题的其他解决方案很感兴趣,但我在这个阶段(作为初学者Gremliner)的目标是Gremlin的评估/学习,感受它是如何工作的,尝试不同的解决方案,而不是找到最好的一。
对不便,但您似乎遇到了一个错误。它存在于Dog House中,并且在Rexster控制台中也失败。有趣的是,它可以在独立的Gremlin发行版中使用。从脚本引擎返回结果时发生故障,并且正在转换为字符串行以返回到控制台,但我没有立即看到原因。这个例外特别没有帮助。我在rexster中创建了一个问题来跟踪:https://github.com/tinkerpop/rexster/issues/263 –
它也可以通过相同Rexster实例的RESTful界面工作,指示错误的位置与您写的相同 –
我在github上更新了这个问题。有一种解决方法,但还不是解决方案。 –