【发布时间】:2014-01-25 08:23:13
【问题描述】:
我目前正在使用 TinkerPop Gremlin(带有 Titan 后端)来实现“相似文档”算法。
下一行在 gremlin shell 中运行良好:
v = g.v(880068)
m=[:]
v.as('x').out('auto_tag').in('auto_tag').has('status', 1).except('x').groupCount(m).filter{false}
results=[]
m.sort{-it.value}[0..9].each(){key, value -> results.add(key.document_id) }
results
以下结果可见:
==>3188749
==>3190640
==>3191407
==>3187753
==>3186634
==>3185534
==>3189883
==>3190108
==>3187088
==>3188890
但是当我尝试在一个函数中“包装”相同的代码时,它不再起作用了:
v = g.v(880068)
def get_similar_documents(v) {
m=[:]
v.as('x').out('auto_tag').in('auto_tag').has('status', 1).except('x').groupCount(m).filter{false}
results=[]
m.sort{-it.value}[0..9].each(){key, value -> results.add(key.document_id) }
return results
}
get_similar_documents(v)
...没有返回任何内容
来自 Python 后端,我认为这与变量范围有关,但到目前为止我不明白如何修复它。
提前感谢您的帮助
编辑:我正在使用灯泡,这就是为什么我想将我的代码包装在一个函数中(我以后可以从 Python 调用)
【问题讨论】:
标签: groovy gremlin titan bulbs