2

我想在 gremlin 中重复一些遍历,如下所示:

g.V(1).repeat(out()).times(1)

使用goblinpython 包和默认titan11安装(我认为,titan+casssandra+gremlin+elasticsearch,但是,这东西很混乱)。

在 python 中,在做了一些特殊的导入之后,我或多或少地写了与上面完全相同的东西:

from gremlin_python import statics
from gremlin_python.process.graph_traversal import __
statics.load_statics(globals())

# ... lots of other badass async python stuff and some networkx stuff etc

sg = g.V(seed_id).repeat(out()).times(1)

(如果您认为可能有帮助,请参阅https://github.com/mikedewar/graphLearning/blob/master/conditional_traversal.py#L107了解所有其他内容)

当我sg使用 goblin 遍历遍历时,我认为来自 gremlin 的 Java 错误:

goblin.exception.GremlinServerError: 597: No signature of method: org.apache.tinkerpop.gremlin.process.traversal.dsl.graph.DefaultGraphTraversal.times() is applicable for argument types: (java.lang.Long) values: [1]
Possible solutions: toSet(), size(), min(), take(int), sleep(long), is(java.lang.Object)

所以我想它可能不喜欢我传递给它的整数。

请帮忙!我希望能够在 gremlin 中重复内容。

4

1 回答 1

2

这是 Goblin 提供的旧 Groovy 转换器实现中的一个错误,以提供与 GraphSON 版本 1 的向后兼容性。它导致所有整数都被序列化为 long。因为times方法签名需要一个整数,所以这会导致错误。我用这个commit修复了它。此修复程序将包含在下一个版本中。现在,请从 Github 安装:

pip install git+https://github.com/ZEROFAIL/goblin.git

我知道你不确定这个问题的根源,但也许将来 Github 问题会是一个更好的起点。

于 2016-11-07T15:41:43.963 回答