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上更新了這個問題。有一種解決方法,但還不是解決方案。 –