在 gremlin 中的示例方法中传递动态值不起作用

raj*_*kar 5 graph-databases gremlin janusgraph

我是小精灵的新手。我试图根据某些条件获得一些随机顶点。但是,如果我使用带有一些数学计算的示例方法,则它不起作用。但是如果我给出整数值,它就可以正常工作。

以下查询工作正常:

g.V().hasLabel('Person').sample(1)
Run Code Online (Sandbox Code Playgroud)

以下查询不起作用:

g.V().hasLabel('Person').sample(math('4/2'))
Run Code Online (Sandbox Code Playgroud)

实际上,根据人数,我应该在样本方法中执行一些数学计算。提前致谢

ste*_*tte 5

这是您尝试运行的 Gremlin 的一个有趣部分。我以前从未见过有人尝试过。可悲的是,它不起作用,因为sample()它不以 aTraversal作为参数。它只需要一个数字。除了在 Gremlin 之外进行计算之外,没有解决此问题的方法,如果您需要根据查询中的数据选择样本大小,这将无济于事。sample()不是唯一以这种方式行事的步骤。我创建了TINKERPOP-2414来跟踪这个问题。


Pha*_*ani 0

您需要做的就是:g.V().hasLabel('Person').sample(Math.round(4/2).intValue())

Gremlin 在一个绝妙的 shell 中运行。如果有疑问,您可以检查如何将 Long 转换为 Integer,以便以 Integer 作为参数的示例函数可以工作。